From 725735a87b9d223c2afc83bbd049055b1e44a976 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 16 May 2024 10:43:49 -0700 Subject: RasterizerOrder resource for spirv and metal. (#4175) * RasterizerOrder resource for spirv and metal. Also fixes the byte address buffer logic for metal. * Fix. * Delete commented lines. --------- Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com> --- source/slang/core.meta.slang | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) (limited to 'source/slang/core.meta.slang') diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang index bf69eb9ad..272e95c85 100644 --- a/source/slang/core.meta.slang +++ b/source/slang/core.meta.slang @@ -2062,42 +2062,14 @@ int __offsetOf(in T t, in F field) } /// Mark beginning of "interlocked" operations in a fragment shader. -__glsl_extension(GL_ARB_fragment_shader_interlock) -__glsl_version(420) -void beginInvocationInterlock() -{ - __target_switch - { - case glsl: - __intrinsic_asm "beginInvocationInterlockARB"; - case spirv: - spirv_asm { - OpCapability FragmentShaderPixelInterlockEXT; - OpExtension "SPV_EXT_fragment_shader_interlock"; - OpExecutionMode __entryPoint PixelInterlockOrderedEXT; - OpBeginInvocationInterlockEXT; - }; - } -} +[require(glsl_spirv, GL_ARB_fragment_shader_interlock, fragment)] +__intrinsic_op($(kIROp_BeginFragmentShaderInterlock)) +void beginInvocationInterlock(); /// Mark end of "interlocked" operations in a fragment shader. -__glsl_extension(GL_ARB_fragment_shader_interlock) -__glsl_version(420) -void endInvocationInterlock() -{ - __target_switch - { - case glsl: - __intrinsic_asm "endInvocationInterlockARB"; - case spirv: - spirv_asm { - OpCapability FragmentShaderPixelInterlockEXT; - OpExtension "SPV_EXT_fragment_shader_interlock"; - OpExecutionMode __entryPoint PixelInterlockOrderedEXT; - OpEndInvocationInterlockEXT; - }; - } -} +[require(glsl_spirv, GL_ARB_fragment_shader_interlock, fragment)] +__intrinsic_op($(kIROp_EndFragmentShaderInterlock)) +void endInvocationInterlock(); // Operators to apply to `enum` types -- cgit v1.2.3