summaryrefslogtreecommitdiff
path: root/source/slang/core.meta.slang
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-05-16 10:43:49 -0700
committerGitHub <noreply@github.com>2024-05-16 10:43:49 -0700
commit725735a87b9d223c2afc83bbd049055b1e44a976 (patch)
tree225f381774fb9b5209007ae7fc455a14f57a6fe6 /source/slang/core.meta.slang
parent0a6180299352d7a2ec850004564c7a95b37a41c4 (diff)
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>
Diffstat (limited to 'source/slang/core.meta.slang')
-rw-r--r--source/slang/core.meta.slang40
1 files changed, 6 insertions, 34 deletions
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