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