nir/intrinsics: Add new Vulkan load/store intrinsics
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 14 Oct 2015 23:37:59 +0000 (16:37 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 15 Oct 2015 01:38:33 +0000 (18:38 -0700)
src/glsl/nir/nir_intrinsics.h

index 1fd13cfc51082a4e676401a93d39f83a079ae630..b5a0d715aa3e18fba72e896f5a95f8c4390b3f62 100644 (file)
@@ -227,11 +227,14 @@ SYSTEM_VALUE(num_work_groups, 3, 0)
              true, 0, 0, indices, flags)
 
 LOAD(uniform, 0, 2, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
-LOAD(ubo, 1, 2, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
+LOAD(ubo, 1, 1, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
 LOAD(input, 0, 1, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
 LOAD(per_vertex_input, 1, 1, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
 LOAD(ssbo, 1, 1, NIR_INTRINSIC_CAN_ELIMINATE)
 
+LOAD(ubo_vk, 1, 3, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
+LOAD(ssbo_vk, 1, 3, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
+
 /*
  * Stores work the same way as loads, except now the first register input is
  * the value or array to store and the optional second input is the indirect
@@ -250,4 +253,6 @@ LOAD(ssbo, 1, 1, NIR_INTRINSIC_CAN_ELIMINATE)
 STORE(output, 0, 0, 0, 0)
 STORE(ssbo, 1, 1, 1, 0)
 
-LAST_INTRINSIC(store_ssbo_indirect)
+STORE(ssbo_vk, 1, 1, 3, 0)
+
+LAST_INTRINSIC(store_ssbo_vk_indirect)