mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
nir: Add a vulkan_resource_reindex intrinsic
This is required for being able to handle OpPtrAccessChain in SPIR-V where the base type of the incoming pointer requires us to add to the block index instead of the byte offset. Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
This commit is contained in:
parent
ae54a4f84f
commit
cfb81f58a0
1 changed files with 8 additions and 1 deletions
|
|
@ -210,7 +210,7 @@ INTRINSIC(image_samples, 0, ARR(0), true, 1, 1, 0, xx, xx, xx,
|
|||
NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
|
||||
|
||||
/*
|
||||
* Vulkan descriptor set intrinsic
|
||||
* Vulkan descriptor set intrinsics
|
||||
*
|
||||
* The Vulkan API uses a different binding model from GL. In the Vulkan
|
||||
* API, all external resources are represented by a tuple:
|
||||
|
|
@ -224,10 +224,17 @@ INTRINSIC(image_samples, 0, ARR(0), true, 1, 1, 0, xx, xx, xx,
|
|||
*
|
||||
* The intended usage is that the shader will call vulkan_surface_index to
|
||||
* get an index and then pass that as the buffer index ubo/ssbo calls.
|
||||
*
|
||||
* The vulkan_resource_reindex intrinsic takes a resource index in src0
|
||||
* (the result of a vulkan_resource_index or vulkan_resource_reindex) which
|
||||
* corresponds to the tuple (set, binding, index) and computes an index
|
||||
* corresponding to tuple (set, binding, idx + src1).
|
||||
*/
|
||||
INTRINSIC(vulkan_resource_index, 1, ARR(1), true, 1, 0, 2,
|
||||
DESC_SET, BINDING, xx,
|
||||
NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
|
||||
INTRINSIC(vulkan_resource_reindex, 2, ARR(1, 1), true, 1, 0, 0, xx, xx, xx,
|
||||
NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
|
||||
|
||||
/*
|
||||
* variable atomic intrinsics
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue