gfxreconstruct icon indicating copy to clipboard operation
gfxreconstruct copied to clipboard

Handle shader extraction and replacement for less common cases

Open w-pearson opened this issue 5 months ago • 5 comments

Specifically, shader extraction and replacement is now supported for shaders created with a VkShaderModuleCreateInfo struct in the pNext chain of a VkPipelineShaderStageCreateInfo, and for calls to vkCreateShadersEXT. The former case uses the pipeline's handle and the shader stage as the filename, while the latter uses the handle passed to vkCreateShadersEXT. This is supported for both regular and asynchronous pipeline creation.

This PR does not address gfxrecon-convert (see #1748).

For the VkShaderModuleCreateInfo case, the shader stage specifically is the decimal value of the VkShaderStageFlagBits (which must be only one bit). This produces shaders named e.g. sh99_1 or sh116_16, which isn't pretty but should be unambiguous. If there's an easy way to produce nicer names, that would be preferable.

w-pearson avatar Sep 24 '24 20:09 w-pearson