From 00474731a90add7c0aaffc3a76d713ae2cecdbbe Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 21 Mar 2024 21:10:48 -0700 Subject: Partially implement vk_buffer_ref proposal. (#3814) --- source/slang/hlsl.meta.slang | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'source/slang/hlsl.meta.slang') diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index b660437d9..d2dfe6267 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -13912,6 +13912,41 @@ extension __TextureImpl + { + T *_ptr; + [ForceInline] __init(T *ptr) { _ptr = ptr; } + [ForceInline] __init(uint64_t val) { _ptr = (T *)val; } + [ForceInline] Ref Get() { return *_ptr; } + [ForceInline] T *getPtr() { return _ptr;} + } + [ForceInline] + BufferPointer static_pointer_cast(BufferPointer src) + { + return BufferPointer((U*)(src.getPtr())); + } + [ForceInline] + BufferPointer reinterpret_pointer_cast(BufferPointer src) + { + return BufferPointer((U *)(src.getPtr())); + } +} + +attribute_syntax[vk_aliased_pointer] : VkAliasedPointerAttribute; +attribute_syntax[vk_restrict_pointer] : VkRestrictPointerAttribute; + +extension uint64_t +{ + __init(vk::BufferPointer ptr) + { + this = (uint64_t)ptr._ptr; + } +} + __generic __intrinsic_type($(kIROp_HLSLConstBufferPointerType)) __glsl_extension(GL_EXT_buffer_reference) -- cgit v1.2.3