radv: Implement VK_AMD_shader_info
authorAlex Smith <asmith@feralinteractive.com>
Fri, 27 Oct 2017 13:25:05 +0000 (14:25 +0100)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 28 Oct 2017 22:28:45 +0000 (00:28 +0200)
commitde889794134e6245e08a24425a6d686a1be584b8
tree1ed5daf5009b6ffaf10a70d5fb83d067028fe6b4
parent0a23841a98dacad1fbc81f34479ce194e86fc99a
radv: Implement VK_AMD_shader_info

This allows an app to query shader statistics and get a disassembly of
a shader. RenderDoc git has support for it, so this allows you to view
shader disassembly from a capture.

When this extension is enabled on a device (or when tracing), we now
disable pipeline caching, since we don't get the shader debug info when
we retrieve cached shaders.

v2: Improvements to resource usage reporting
v3: Disassembly string must be null terminated (string_buffer's length
    does not include the terminator)
v4: Fixed LDS reporting. (Bas)

Signed-off-by: Alex Smith <asmith@feralinteractive.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_device.c
src/amd/vulkan/radv_extensions.py
src/amd/vulkan/radv_pipeline.c
src/amd/vulkan/radv_pipeline_cache.c
src/amd/vulkan/radv_private.h
src/amd/vulkan/radv_shader.c