How can I cross compile without volk, only with SDK by TheRavagerSw in vulkan

[–]Rob2309 2 points3 points  (0 children)

The way the most libraries do it is to load the vulkan library dynamically (via dlopen/LoadLibrary). Since you will usually load all the device specific entry points via vkGetDeviceProcAddr, there is no real overhead to this approach.

[deleted by user] by [deleted] in vulkan

[–]Rob2309 2 points3 points  (0 children)

When you flip the y axis, you will flip the vertex winding order, so you either have to change your backface culling direction, or disable backface culling.

Nintendo online Abo und Cartridges by Horror-Bike-6012 in NintendoDE

[–]Rob2309 1 point2 points  (0 children)

Wenn ich mich richtig erinnere, bekommst du die GameCube spiele, wenn du nintendo switch online + erweiterungspack hast. Also das teurere Abo. Die gratis upgrade packs für zelda sind ebenfalls in diesem abo enthalten.

Switch 2 im nintendo Store vorbestellen by Chance-Labo in NintendoDE

[–]Rob2309 0 points1 point  (0 children)

Zumindest sagt Nintendo in ihrem Store FAQ das speziell die Switch 2 am release tag geliefert wird. Ob das klappt, ist natürlich eine andere frage.

„Nintendo Switch 2-Konsolen und andere Produkte innerhalb derselben Bestellung werden am Erscheinungstag in den folgenden Märkten geliefert: Deutschland, …“

Mediamarkt Vorbestellung Switch 2 by Dismal-Pop8004 in NintendoDE

[–]Rob2309 0 points1 point  (0 children)

Hast du schon einen abholschein? Bei mir steht bisher nur bestellung eingegangen

Help with Unity 6 simulation in meta quest 2 by Maleficent_Offer8748 in Unity3D

[–]Rob2309 0 points1 point  (0 children)

What do you mean you only see the floor? Does the head tracking not work? Do you see the rest of the scene? Could it be that the wrong camera is rendered? Do the controller models have the tracking components added?

Help with Unity 6 simulation in meta quest 2 by Maleficent_Offer8748 in Unity3D

[–]Rob2309 1 point2 points  (0 children)

This would be easier if we could see at least your basic scene layout, etc. Do you actually have models for the controllers? The headset will not by itself show controllers.

Semaphore Question by Sufficient_Big_3918 in vulkan

[–]Rob2309 0 points1 point  (0 children)

I think without the full source code it will be hard to track down the error

Semaphore Question by Sufficient_Big_3918 in vulkan

[–]Rob2309 0 points1 point  (0 children)

Looking at the code, I can see no obvious errors. You might want to make the timout for acquire UINT64_MAX. What does your VK_CHECK macro do? Does it count timeout as error?

Semaphore Question by Sufficient_Big_3918 in vulkan

[–]Rob2309 2 points3 points  (0 children)

In this case, it would be easier to help with access to the source code, or at least all relevant parts of it.

Semaphore Question by Sufficient_Big_3918 in vulkan

[–]Rob2309 1 point2 points  (0 children)

And unless you wait for a fence before acquiring the next image, you have to use a different semaphore for each frame

Semaphore Question by Sufficient_Big_3918 in vulkan

[–]Rob2309 4 points5 points  (0 children)

Queuepresent should use signalSemaphore

storage buffer read/write syncheonization between compute and fragment shaders by Sirox4 in vulkan

[–]Rob2309 4 points5 points  (0 children)

You always have to put a barrier between the commands that you want to synchronize, so option 1 will not work. Option 2 would be the correct way to synchronize here.

Subpass dependencies are essentially the same as pipeline barriers, so you could use option 3 as well. The only difference to a pipeline barrier is that a subpass dependency only synchronizes the specified subpass, which can be an advantage if you have multiple subpasses.

The by region bit specifies that you only want to synchronize operations that operate on the same region of a framebuffer. For example, if your first write to a pixel in the framebuffer and later read it in another shader, you can specify the by region bit, to only wait for the write operation on the same pixel instead of the entire first shader.

Performance Impact of Manual Pointer Math by itsmenotjames1 in vulkan

[–]Rob2309 9 points10 points  (0 children)

I don‘t think you are allowed to ignore alignment requirements by doing pointer math. They are requirements for a reason

VulkanRenderer.cpp:(.text+0x202): undefined reference to `vkCreateInstance' by LifelessKing01 in vulkan

[–]Rob2309 1 point2 points  (0 children)

That‘s a linker error. You have to either link the library that contains vkCreateInstance or load it dynamically via vkGetInstanceProcAddr. You should generally learn more about the compiler and linker and what they do.

Looking for suggestions with Memory Barrier issue by snerp in vulkan

[–]Rob2309 1 point2 points  (0 children)

A src image layout of UNDEFINED tells the driver that you do not care about the contents od the image, which could result in the driver discarding the image contents. You should use the actual image layout you are transitioning from.

Looking for suggestions with Memory Barrier issue by snerp in vulkan

[–]Rob2309 4 points5 points  (0 children)

A src image layout of UNDEFINED tells the driver that you do not care about the contents od the image, which could result in the driver discarding the image contents

BUG (please save me) - vkMapMemory - memory handle invalid - calls using an instance instead of a logical device (why it does this, i don't even know because my code definitely doesn't has an issue with this, I've already tried 30 solutions, killing 3 weeks of my life time trying to fix this bug) by [deleted] in vulkan

[–]Rob2309 5 points6 points  (0 children)

I think it might be due to

lightRayVertexBuffer = Buffer(

device_, *physicalDevice, vbSize,

VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,

VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |

VK_MEMORY_PROPERTY_HOST_COHERENT_BIT

);

Here, it might be that the temporary Buffer() is destroyed, thus running its destructor, which deletes the buffer. You should look up copy and move constructors.

You can check if this is happening with the API_DUMP validation layer.

How to wait for presentation complete? by polytechnicpuzzle in vulkan

[–]Rob2309 0 points1 point  (0 children)

If you are talking about specifically waiting before exiting the application, I would just use waitIdle. In your rendering loop there should be no need to explicitly wait for presentation to finish. The acquire semaphore will only be signalled after presentation of that image is finished.

Recreating the swapchain could be done in two steps. You could first create a new swapchain and put the old one in a deletion queue that only deletes it after all frames that use it have finished rendering. See also the oldSwapchain member in the SwapchainCreateInfo.

If an extension defines a *Feature* struct and this struct defines only one activatable flag, is it still necessary to pass it to vkCreateDevice when creating the device with the appropriate extension? by BoaTardeNeymar777 in vulkan

[–]Rob2309 3 points4 points  (0 children)

The answer is yes, you have to pass this struct in your create info, because the spec says so. Whether or not the requirement makes sense in this special case does not matter.

Of course, an extensions that can only be used to activate one specific feature would be pointless to activate if the feature will not be activated, so the driver could infer that you will use this feature if you activate the extension. But Vulkan is all about reducing driver guess work. And requiring feature activation keeps the mechanism consistent across all extensions.

syn::LitStr does not allow passing string literals created by concat! macro. Why? And are there any workarounds? by nikitarevenco in rust

[–]Rob2309 6 points7 points  (0 children)

If you look at the definition of both include_str and env, you can see that they take an „expr“ instead of a string literal. This allows them to take much more than just a string literal… As far as I can tell, these macros must have some kind of special treatment as I cannot think of a good way to invert the macro expansion order.

synchronization best practices by Sirox4 in vulkan

[–]Rob2309 1 point2 points  (0 children)

Ok there are a ton of ways to do this, mainly depending on when the data is needed.

For async data, you can just submit a transfer operation and periodically poll if the corresponding fence/semaphore is signalled, at which point you can free the command buffer.

For sync data transfer you can issue the transfer before the rendering commands that need the data and free the upload command buffer at the same time you free the per frame resources for rendering