• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#version 450 core
2
3#extension GL_ARB_gpu_shader_int64: enable
4#extension GL_EXT_buffer_reference: enable
5#extension GL_EXT_spirv_intrinsics: enable
6
7#define CapabilityPhysicalStorageBufferAddresses   5347
8#define StorageClassPhysicalStorageBuffer          5349
9#define OpTypePointer                              32
10#define OpLoad                                     61
11#define OpConvertUToPtr                            120
12
13#define uintStoragePtr spirv_type(extensions = ["SPV_EXT_physical_storage_buffer", "SPV_KHR_variable_pointers"], capabilities = [CapabilityPhysicalStorageBufferAddresses], id = OpTypePointer, StorageClassPhysicalStorageBuffer, uint)
14
15// Just to enable the memory model of physical storage buffer
16layout(buffer_reference, std430) buffer Dummy {
17  uint dummy;
18};
19
20spirv_instruction(id = OpLoad) uint loadUint(uintStoragePtr pointer, spirv_literal uint memoryOperands, spirv_literal uint alignment);
21spirv_instruction(id = OpConvertUToPtr) uintStoragePtr convertToPtr(uint64_t value);
22
23void main() {
24  uint value = loadUint(convertToPtr(1), 0x2, 32);
25}
26