radv/rt: separate shader compilation
authorDaniel Schürmann <daniel@schuermann.dev>
Fri, 10 Mar 2023 17:40:58 +0000 (18:40 +0100)
committerMarge Bot <emma+marge@anholt.net>
Thu, 8 Jun 2023 00:37:03 +0000 (00:37 +0000)
commit163c97e6a7adf40a9bebeaf2fc338faaa387702a
tree28b8388680882d3d04f53d63cbefe524168b4cf2
parentdefdcd2058aa13cf5f50cf558637959cb190261d
radv/rt: separate shader compilation

With this patch, we compile separately
 - general shaders (raygen, miss, callable)
 - closest-hit shaders
 - traversal shader (incl. all intersection / any-hit shaders)

Each shader uses the following scheme:

  if (shader_pc == shader_va) {
     <shader code>
  }
  next = select_next_shader(shader_va)
  jump next

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
src/amd/vulkan/radv_pipeline_rt.c
src/amd/vulkan/radv_private.h
src/amd/vulkan/radv_rt_common.c
src/amd/vulkan/radv_rt_shader.c
src/amd/vulkan/radv_shader.h