diff options
author | Jason Ekstrand <[email protected]> | 2019-01-12 10:58:33 -0600 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2019-03-05 10:06:50 -0600 |
commit | 61e009d2c4e4dfc071185f9e9c6366bc53168019 (patch) | |
tree | 5138789301eff4021246e9d7d616d8fead0ec860 /src/compiler/nir | |
parent | 9f7ee4f8e5b2aa492804367dd64fd5497cb23d1d (diff) |
spirv: Use the same types for resource indices as pointers
We need more space than just a 32-bit scalar and we have to burn all
that space anyway so we may as well expose it to the driver. This also
fixes a subtle bug when UBOs and SSBOs have different pointer types.
Reviewed-by: Lionel Landwerlin <[email protected]>
Diffstat (limited to 'src/compiler/nir')
-rw-r--r-- | src/compiler/nir/nir_intrinsics.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index 90d347f7331..9e765951301 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -158,7 +158,7 @@ intrinsic("interp_deref_at_offset", src_comp=[1, 2], dest_comp=0, # Ask the driver for the size of a given buffer. It takes the buffer index # as source. -intrinsic("get_buffer_size", src_comp=[1], dest_comp=1, +intrinsic("get_buffer_size", src_comp=[-1], dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER]) # a barrier is an intrinsic with no inputs/outputs but which can't be moved @@ -363,12 +363,12 @@ image("store_raw_intel", src_comp=[1, 0]) # (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", src_comp=[1], dest_comp=1, +intrinsic("vulkan_resource_index", src_comp=[1], dest_comp=0, indices=[DESC_SET, BINDING, DESC_TYPE], flags=[CAN_ELIMINATE, CAN_REORDER]) -intrinsic("vulkan_resource_reindex", src_comp=[1, 1], dest_comp=1, +intrinsic("vulkan_resource_reindex", src_comp=[0, 1], dest_comp=0, indices=[DESC_TYPE], flags=[CAN_ELIMINATE, CAN_REORDER]) -intrinsic("load_vulkan_descriptor", src_comp=[1], dest_comp=0, +intrinsic("load_vulkan_descriptor", src_comp=[-1], dest_comp=0, indices=[DESC_TYPE], flags=[CAN_ELIMINATE, CAN_REORDER]) # variable atomic intrinsics |