mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-06-06 14:43:31 +00:00
intrinsics: Limit fwidth builtins to fragment shaders
This fixes the SPIR-V and MSL tests for these intrinsics. Change-Id: Id6f48682285ff17cb1fa7ef618f34b02f553332b Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/55681 Auto-Submit: James Price <jrprice@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: James Price <jrprice@google.com> Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
parent
f37f8df38b
commit
e0cc771e0a
@ -6807,7 +6807,7 @@ constexpr OverloadInfo kOverloads[] = {
|
|||||||
/* open numbers */ &kOpenNumbers[7],
|
/* open numbers */ &kOpenNumbers[7],
|
||||||
/* parameters */ &kParameters[564],
|
/* parameters */ &kParameters[564],
|
||||||
/* return matcher indices */ &kMatcherIndices[7],
|
/* return matcher indices */ &kMatcherIndices[7],
|
||||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||||
/* is_deprecated */ false,
|
/* is_deprecated */ false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -6819,7 +6819,7 @@ constexpr OverloadInfo kOverloads[] = {
|
|||||||
/* open numbers */ &kOpenNumbers[1],
|
/* open numbers */ &kOpenNumbers[1],
|
||||||
/* parameters */ &kParameters[563],
|
/* parameters */ &kParameters[563],
|
||||||
/* return matcher indices */ &kMatcherIndices[10],
|
/* return matcher indices */ &kMatcherIndices[10],
|
||||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||||
/* is_deprecated */ false,
|
/* is_deprecated */ false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -6831,7 +6831,7 @@ constexpr OverloadInfo kOverloads[] = {
|
|||||||
/* open numbers */ &kOpenNumbers[7],
|
/* open numbers */ &kOpenNumbers[7],
|
||||||
/* parameters */ &kParameters[562],
|
/* parameters */ &kParameters[562],
|
||||||
/* return matcher indices */ &kMatcherIndices[7],
|
/* return matcher indices */ &kMatcherIndices[7],
|
||||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||||
/* is_deprecated */ false,
|
/* is_deprecated */ false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -6843,7 +6843,7 @@ constexpr OverloadInfo kOverloads[] = {
|
|||||||
/* open numbers */ &kOpenNumbers[1],
|
/* open numbers */ &kOpenNumbers[1],
|
||||||
/* parameters */ &kParameters[561],
|
/* parameters */ &kParameters[561],
|
||||||
/* return matcher indices */ &kMatcherIndices[10],
|
/* return matcher indices */ &kMatcherIndices[10],
|
||||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||||
/* is_deprecated */ false,
|
/* is_deprecated */ false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -6855,7 +6855,7 @@ constexpr OverloadInfo kOverloads[] = {
|
|||||||
/* open numbers */ &kOpenNumbers[7],
|
/* open numbers */ &kOpenNumbers[7],
|
||||||
/* parameters */ &kParameters[560],
|
/* parameters */ &kParameters[560],
|
||||||
/* return matcher indices */ &kMatcherIndices[7],
|
/* return matcher indices */ &kMatcherIndices[7],
|
||||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||||
/* is_deprecated */ false,
|
/* is_deprecated */ false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -6867,7 +6867,7 @@ constexpr OverloadInfo kOverloads[] = {
|
|||||||
/* open numbers */ &kOpenNumbers[1],
|
/* open numbers */ &kOpenNumbers[1],
|
||||||
/* parameters */ &kParameters[559],
|
/* parameters */ &kParameters[559],
|
||||||
/* return matcher indices */ &kMatcherIndices[10],
|
/* return matcher indices */ &kMatcherIndices[10],
|
||||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||||
/* is_deprecated */ false,
|
/* is_deprecated */ false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -311,12 +311,12 @@ fn fract(f32) -> f32
|
|||||||
fn fract<N: num>(vec<N, f32>) -> vec<N, f32>
|
fn fract<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||||
fn frexp<T: iu32, S: function_private_workgroup, A: access>(f32, ptr<S, T, A>) -> f32
|
fn frexp<T: iu32, S: function_private_workgroup, A: access>(f32, ptr<S, T, A>) -> f32
|
||||||
fn frexp<N: num, T: iu32, S: function_private_workgroup, A: access>(vec<N, f32>, ptr<S, vec<N, T>, A>) -> vec<N, f32>
|
fn frexp<N: num, T: iu32, S: function_private_workgroup, A: access>(vec<N, f32>, ptr<S, vec<N, T>, A>) -> vec<N, f32>
|
||||||
fn fwidth(f32) -> f32
|
[[stage("fragment")]] fn fwidth(f32) -> f32
|
||||||
fn fwidth<N: num>(vec<N, f32>) -> vec<N, f32>
|
[[stage("fragment")]] fn fwidth<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||||
fn fwidthCoarse(f32) -> f32
|
[[stage("fragment")]] fn fwidthCoarse(f32) -> f32
|
||||||
fn fwidthCoarse<N: num>(vec<N, f32>) -> vec<N, f32>
|
[[stage("fragment")]] fn fwidthCoarse<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||||
fn fwidthFine(f32) -> f32
|
[[stage("fragment")]] fn fwidthFine(f32) -> f32
|
||||||
fn fwidthFine<N: num>(vec<N, f32>) -> vec<N, f32>
|
[[stage("fragment")]] fn fwidthFine<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||||
fn ignore<T>(T)
|
fn ignore<T>(T)
|
||||||
fn inverseSqrt(f32) -> f32
|
fn inverseSqrt(f32) -> f32
|
||||||
fn inverseSqrt<N: num>(vec<N, f32>) -> vec<N, f32>
|
fn inverseSqrt<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||||
|
@ -28,18 +28,7 @@ fn fwidth_5d1b39() {
|
|||||||
var res: vec3<f32> = fwidth(vec3<f32>());
|
var res: vec3<f32> = fwidth(vec3<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidth_5d1b39();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidth_5d1b39();
|
fwidth_5d1b39();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidth_5d1b39();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidth_5d1b39() {
|
|||||||
float3 res = fwidth(float3(0.0f, 0.0f, 0.0f));
|
float3 res = fwidth(float3(0.0f, 0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidth_5d1b39();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidth_5d1b39();
|
fwidth_5d1b39();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidth_5d1b39();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidth_5d1b39() {
|
|||||||
float3 res = fwidth(float3());
|
float3 res = fwidth(float3());
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidth_5d1b39();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidth_5d1b39();
|
fwidth_5d1b39();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidth_5d1b39();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_6o3PFV.metal:5:10: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float3 res = fwidth(float3());
|
|
||||||
^
|
|
||||||
tint_6o3PFV.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v3f32 is not allowed within a vertex function
|
|
||||||
tint_6o3PFV.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v3f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,62 +1,30 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 24
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidth_5d1b39 "fwidth_5d1b39"
|
OpName %fwidth_5d1b39 "fwidth_5d1b39"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%v3float = OpTypeVector %float 3
|
%v3float = OpTypeVector %float 3
|
||||||
%11 = OpConstantNull %v3float
|
%8 = OpConstantNull %v3float
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
%float_1 = OpConstant %float 1
|
%fwidth_5d1b39 = OpFunction %void None %1
|
||||||
%fwidth_5d1b39 = OpFunction %void None %5
|
%4 = OpLabel
|
||||||
%8 = OpLabel
|
%res = OpVariable %_ptr_Function_v3float Function %8
|
||||||
%res = OpVariable %_ptr_Function_v3float Function %11
|
%5 = OpFwidth %v3float %8
|
||||||
%9 = OpFwidth %v3float %11
|
OpStore %res %5
|
||||||
OpStore %res %9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%15 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidth_5d1b39
|
||||||
%17 = OpFunctionCall %void %fwidth_5d1b39
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%19 = OpLabel
|
|
||||||
%20 = OpFunctionCall %void %fwidth_5d1b39
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%22 = OpLabel
|
|
||||||
%23 = OpFunctionCall %void %fwidth_5d1b39
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '14[%vertex_main]'s callgraph contains function <id> 7[%fwidth_5d1b39], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: Fwidth
|
|
||||||
|
|
||||||
%fwidth_5d1b39 = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidth_5d1b39() {
|
|||||||
var res : vec3<f32> = fwidth(vec3<f32>());
|
var res : vec3<f32> = fwidth(vec3<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidth_5d1b39();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidth_5d1b39();
|
fwidth_5d1b39();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidth_5d1b39();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidth_b83ebb() {
|
|||||||
var res: vec2<f32> = fwidth(vec2<f32>());
|
var res: vec2<f32> = fwidth(vec2<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidth_b83ebb();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidth_b83ebb();
|
fwidth_b83ebb();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidth_b83ebb();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidth_b83ebb() {
|
|||||||
float2 res = fwidth(float2(0.0f, 0.0f));
|
float2 res = fwidth(float2(0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidth_b83ebb();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidth_b83ebb();
|
fwidth_b83ebb();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidth_b83ebb();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidth_b83ebb() {
|
|||||||
float2 res = fwidth(float2());
|
float2 res = fwidth(float2());
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidth_b83ebb();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidth_b83ebb();
|
fwidth_b83ebb();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidth_b83ebb();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_STFkVK.metal:5:10: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float2 res = fwidth(float2());
|
|
||||||
^
|
|
||||||
tint_STFkVK.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v2f32 is not allowed within a vertex function
|
|
||||||
tint_STFkVK.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v2f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,62 +1,30 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 24
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidth_b83ebb "fwidth_b83ebb"
|
OpName %fwidth_b83ebb "fwidth_b83ebb"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%v2float = OpTypeVector %float 2
|
%v2float = OpTypeVector %float 2
|
||||||
%11 = OpConstantNull %v2float
|
%8 = OpConstantNull %v2float
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
%float_1 = OpConstant %float 1
|
%fwidth_b83ebb = OpFunction %void None %1
|
||||||
%fwidth_b83ebb = OpFunction %void None %5
|
%4 = OpLabel
|
||||||
%8 = OpLabel
|
%res = OpVariable %_ptr_Function_v2float Function %8
|
||||||
%res = OpVariable %_ptr_Function_v2float Function %11
|
%5 = OpFwidth %v2float %8
|
||||||
%9 = OpFwidth %v2float %11
|
OpStore %res %5
|
||||||
OpStore %res %9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%15 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidth_b83ebb
|
||||||
%17 = OpFunctionCall %void %fwidth_b83ebb
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%19 = OpLabel
|
|
||||||
%20 = OpFunctionCall %void %fwidth_b83ebb
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%22 = OpLabel
|
|
||||||
%23 = OpFunctionCall %void %fwidth_b83ebb
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '14[%vertex_main]'s callgraph contains function <id> 7[%fwidth_b83ebb], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: Fwidth
|
|
||||||
|
|
||||||
%fwidth_b83ebb = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidth_b83ebb() {
|
|||||||
var res : vec2<f32> = fwidth(vec2<f32>());
|
var res : vec2<f32> = fwidth(vec2<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidth_b83ebb();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidth_b83ebb();
|
fwidth_b83ebb();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidth_b83ebb();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidth_d2ab9a() {
|
|||||||
var res: vec4<f32> = fwidth(vec4<f32>());
|
var res: vec4<f32> = fwidth(vec4<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidth_d2ab9a();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidth_d2ab9a();
|
fwidth_d2ab9a();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidth_d2ab9a();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidth_d2ab9a() {
|
|||||||
float4 res = fwidth(float4(0.0f, 0.0f, 0.0f, 0.0f));
|
float4 res = fwidth(float4(0.0f, 0.0f, 0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidth_d2ab9a();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidth_d2ab9a();
|
fwidth_d2ab9a();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidth_d2ab9a();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidth_d2ab9a() {
|
|||||||
float4 res = fwidth(float4());
|
float4 res = fwidth(float4());
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidth_d2ab9a();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidth_d2ab9a();
|
fwidth_d2ab9a();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidth_d2ab9a();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_BZ4hJz.metal:5:10: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float4 res = fwidth(float4());
|
|
||||||
^
|
|
||||||
tint_BZ4hJz.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v4f32 is not allowed within a vertex function
|
|
||||||
tint_BZ4hJz.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v4f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,62 +1,30 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 24
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidth_d2ab9a "fwidth_d2ab9a"
|
OpName %fwidth_d2ab9a "fwidth_d2ab9a"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%v4float = OpTypeVector %float 4
|
%v4float = OpTypeVector %float 4
|
||||||
%11 = OpConstantNull %v4float
|
%8 = OpConstantNull %v4float
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%fwidth_d2ab9a = OpFunction %void None %1
|
||||||
%fwidth_d2ab9a = OpFunction %void None %5
|
%4 = OpLabel
|
||||||
%8 = OpLabel
|
%res = OpVariable %_ptr_Function_v4float Function %8
|
||||||
%res = OpVariable %_ptr_Function_v4float Function %11
|
%5 = OpFwidth %v4float %8
|
||||||
%9 = OpFwidth %v4float %11
|
OpStore %res %5
|
||||||
OpStore %res %9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%15 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidth_d2ab9a
|
||||||
%17 = OpFunctionCall %void %fwidth_d2ab9a
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%19 = OpLabel
|
|
||||||
%20 = OpFunctionCall %void %fwidth_d2ab9a
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%22 = OpLabel
|
|
||||||
%23 = OpFunctionCall %void %fwidth_d2ab9a
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '14[%vertex_main]'s callgraph contains function <id> 7[%fwidth_d2ab9a], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: Fwidth
|
|
||||||
|
|
||||||
%fwidth_d2ab9a = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidth_d2ab9a() {
|
|||||||
var res : vec4<f32> = fwidth(vec4<f32>());
|
var res : vec4<f32> = fwidth(vec4<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidth_d2ab9a();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidth_d2ab9a();
|
fwidth_d2ab9a();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidth_d2ab9a();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidth_df38ef() {
|
|||||||
var res: f32 = fwidth(1.0);
|
var res: f32 = fwidth(1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidth_df38ef();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidth_df38ef();
|
fwidth_df38ef();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidth_df38ef();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidth_df38ef() {
|
|||||||
float res = fwidth(1.0f);
|
float res = fwidth(1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidth_df38ef();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidth_df38ef();
|
fwidth_df38ef();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidth_df38ef();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidth_df38ef() {
|
|||||||
float res = fwidth(1.0f);
|
float res = fwidth(1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidth_df38ef();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidth_df38ef();
|
fwidth_df38ef();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidth_df38ef();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_YeBAYS.metal:5:9: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float res = fwidth(1.0f);
|
|
||||||
^
|
|
||||||
tint_YeBAYS.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.f32 is not allowed within a vertex function
|
|
||||||
tint_YeBAYS.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,60 +1,30 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 22
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidth_df38ef "fwidth_df38ef"
|
OpName %fwidth_df38ef "fwidth_df38ef"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%fwidth_df38ef = OpFunction %void None %5
|
%10 = OpConstantNull %float
|
||||||
%8 = OpLabel
|
%fwidth_df38ef = OpFunction %void None %1
|
||||||
%res = OpVariable %_ptr_Function_float Function %4
|
%4 = OpLabel
|
||||||
%9 = OpFwidth %float %float_1
|
%res = OpVariable %_ptr_Function_float Function %10
|
||||||
OpStore %res %9
|
%5 = OpFwidth %float %float_1
|
||||||
|
OpStore %res %5
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%14 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidth_df38ef
|
||||||
%15 = OpFunctionCall %void %fwidth_df38ef
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%17 = OpLabel
|
|
||||||
%18 = OpFunctionCall %void %fwidth_df38ef
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%20 = OpLabel
|
|
||||||
%21 = OpFunctionCall %void %fwidth_df38ef
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '13[%vertex_main]'s callgraph contains function <id> 7[%fwidth_df38ef], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: Fwidth
|
|
||||||
|
|
||||||
%fwidth_df38ef = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidth_df38ef() {
|
|||||||
var res : f32 = fwidth(1.0);
|
var res : f32 = fwidth(1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidth_df38ef();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidth_df38ef();
|
fwidth_df38ef();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidth_df38ef();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidthCoarse_159c8a() {
|
|||||||
var res: f32 = fwidthCoarse(1.0);
|
var res: f32 = fwidthCoarse(1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthCoarse_159c8a();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthCoarse_159c8a();
|
fwidthCoarse_159c8a();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthCoarse_159c8a();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidthCoarse_159c8a() {
|
|||||||
float res = fwidth(1.0f);
|
float res = fwidth(1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidthCoarse_159c8a();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidthCoarse_159c8a();
|
fwidthCoarse_159c8a();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidthCoarse_159c8a();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidthCoarse_159c8a() {
|
|||||||
float res = fwidth(1.0f);
|
float res = fwidth(1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidthCoarse_159c8a();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidthCoarse_159c8a();
|
fwidthCoarse_159c8a();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidthCoarse_159c8a();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_IJRHv8.metal:5:9: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float res = fwidth(1.0f);
|
|
||||||
^
|
|
||||||
tint_IJRHv8.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.f32 is not allowed within a vertex function
|
|
||||||
tint_IJRHv8.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,61 +1,31 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 22
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability DerivativeControl
|
OpCapability DerivativeControl
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidthCoarse_159c8a "fwidthCoarse_159c8a"
|
OpName %fwidthCoarse_159c8a "fwidthCoarse_159c8a"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%fwidthCoarse_159c8a = OpFunction %void None %5
|
%10 = OpConstantNull %float
|
||||||
%8 = OpLabel
|
%fwidthCoarse_159c8a = OpFunction %void None %1
|
||||||
%res = OpVariable %_ptr_Function_float Function %4
|
%4 = OpLabel
|
||||||
%9 = OpFwidthCoarse %float %float_1
|
%res = OpVariable %_ptr_Function_float Function %10
|
||||||
OpStore %res %9
|
%5 = OpFwidthCoarse %float %float_1
|
||||||
|
OpStore %res %5
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%14 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidthCoarse_159c8a
|
||||||
%15 = OpFunctionCall %void %fwidthCoarse_159c8a
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%17 = OpLabel
|
|
||||||
%18 = OpFunctionCall %void %fwidthCoarse_159c8a
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%20 = OpLabel
|
|
||||||
%21 = OpFunctionCall %void %fwidthCoarse_159c8a
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '13[%vertex_main]'s callgraph contains function <id> 7[%fwidthCoarse_159c8a], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: FwidthCoarse
|
|
||||||
|
|
||||||
%fwidthCoarse_159c8a = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidthCoarse_159c8a() {
|
|||||||
var res : f32 = fwidthCoarse(1.0);
|
var res : f32 = fwidthCoarse(1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthCoarse_159c8a();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthCoarse_159c8a();
|
fwidthCoarse_159c8a();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthCoarse_159c8a();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidthCoarse_1e59d9() {
|
|||||||
var res: vec3<f32> = fwidthCoarse(vec3<f32>());
|
var res: vec3<f32> = fwidthCoarse(vec3<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthCoarse_1e59d9();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthCoarse_1e59d9();
|
fwidthCoarse_1e59d9();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthCoarse_1e59d9();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidthCoarse_1e59d9() {
|
|||||||
float3 res = fwidth(float3(0.0f, 0.0f, 0.0f));
|
float3 res = fwidth(float3(0.0f, 0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidthCoarse_1e59d9();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidthCoarse_1e59d9();
|
fwidthCoarse_1e59d9();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidthCoarse_1e59d9();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidthCoarse_1e59d9() {
|
|||||||
float3 res = fwidth(float3());
|
float3 res = fwidth(float3());
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidthCoarse_1e59d9();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidthCoarse_1e59d9();
|
fwidthCoarse_1e59d9();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidthCoarse_1e59d9();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_nMosr7.metal:5:10: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float3 res = fwidth(float3());
|
|
||||||
^
|
|
||||||
tint_nMosr7.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v3f32 is not allowed within a vertex function
|
|
||||||
tint_nMosr7.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v3f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,63 +1,31 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 24
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability DerivativeControl
|
OpCapability DerivativeControl
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidthCoarse_1e59d9 "fwidthCoarse_1e59d9"
|
OpName %fwidthCoarse_1e59d9 "fwidthCoarse_1e59d9"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%v3float = OpTypeVector %float 3
|
%v3float = OpTypeVector %float 3
|
||||||
%11 = OpConstantNull %v3float
|
%8 = OpConstantNull %v3float
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
%float_1 = OpConstant %float 1
|
%fwidthCoarse_1e59d9 = OpFunction %void None %1
|
||||||
%fwidthCoarse_1e59d9 = OpFunction %void None %5
|
%4 = OpLabel
|
||||||
%8 = OpLabel
|
%res = OpVariable %_ptr_Function_v3float Function %8
|
||||||
%res = OpVariable %_ptr_Function_v3float Function %11
|
%5 = OpFwidthCoarse %v3float %8
|
||||||
%9 = OpFwidthCoarse %v3float %11
|
OpStore %res %5
|
||||||
OpStore %res %9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%15 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidthCoarse_1e59d9
|
||||||
%17 = OpFunctionCall %void %fwidthCoarse_1e59d9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%19 = OpLabel
|
|
||||||
%20 = OpFunctionCall %void %fwidthCoarse_1e59d9
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%22 = OpLabel
|
|
||||||
%23 = OpFunctionCall %void %fwidthCoarse_1e59d9
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '14[%vertex_main]'s callgraph contains function <id> 7[%fwidthCoarse_1e59d9], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: FwidthCoarse
|
|
||||||
|
|
||||||
%fwidthCoarse_1e59d9 = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidthCoarse_1e59d9() {
|
|||||||
var res : vec3<f32> = fwidthCoarse(vec3<f32>());
|
var res : vec3<f32> = fwidthCoarse(vec3<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthCoarse_1e59d9();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthCoarse_1e59d9();
|
fwidthCoarse_1e59d9();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthCoarse_1e59d9();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidthCoarse_4e4fc4() {
|
|||||||
var res: vec4<f32> = fwidthCoarse(vec4<f32>());
|
var res: vec4<f32> = fwidthCoarse(vec4<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthCoarse_4e4fc4();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthCoarse_4e4fc4();
|
fwidthCoarse_4e4fc4();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthCoarse_4e4fc4();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidthCoarse_4e4fc4() {
|
|||||||
float4 res = fwidth(float4(0.0f, 0.0f, 0.0f, 0.0f));
|
float4 res = fwidth(float4(0.0f, 0.0f, 0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidthCoarse_4e4fc4();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidthCoarse_4e4fc4();
|
fwidthCoarse_4e4fc4();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidthCoarse_4e4fc4();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidthCoarse_4e4fc4() {
|
|||||||
float4 res = fwidth(float4());
|
float4 res = fwidth(float4());
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidthCoarse_4e4fc4();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidthCoarse_4e4fc4();
|
fwidthCoarse_4e4fc4();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidthCoarse_4e4fc4();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_Rs09zG.metal:5:10: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float4 res = fwidth(float4());
|
|
||||||
^
|
|
||||||
tint_Rs09zG.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v4f32 is not allowed within a vertex function
|
|
||||||
tint_Rs09zG.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v4f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,63 +1,31 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 24
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability DerivativeControl
|
OpCapability DerivativeControl
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidthCoarse_4e4fc4 "fwidthCoarse_4e4fc4"
|
OpName %fwidthCoarse_4e4fc4 "fwidthCoarse_4e4fc4"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%v4float = OpTypeVector %float 4
|
%v4float = OpTypeVector %float 4
|
||||||
%11 = OpConstantNull %v4float
|
%8 = OpConstantNull %v4float
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%fwidthCoarse_4e4fc4 = OpFunction %void None %1
|
||||||
%fwidthCoarse_4e4fc4 = OpFunction %void None %5
|
%4 = OpLabel
|
||||||
%8 = OpLabel
|
%res = OpVariable %_ptr_Function_v4float Function %8
|
||||||
%res = OpVariable %_ptr_Function_v4float Function %11
|
%5 = OpFwidthCoarse %v4float %8
|
||||||
%9 = OpFwidthCoarse %v4float %11
|
OpStore %res %5
|
||||||
OpStore %res %9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%15 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidthCoarse_4e4fc4
|
||||||
%17 = OpFunctionCall %void %fwidthCoarse_4e4fc4
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%19 = OpLabel
|
|
||||||
%20 = OpFunctionCall %void %fwidthCoarse_4e4fc4
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%22 = OpLabel
|
|
||||||
%23 = OpFunctionCall %void %fwidthCoarse_4e4fc4
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '14[%vertex_main]'s callgraph contains function <id> 7[%fwidthCoarse_4e4fc4], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: FwidthCoarse
|
|
||||||
|
|
||||||
%fwidthCoarse_4e4fc4 = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidthCoarse_4e4fc4() {
|
|||||||
var res : vec4<f32> = fwidthCoarse(vec4<f32>());
|
var res : vec4<f32> = fwidthCoarse(vec4<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthCoarse_4e4fc4();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthCoarse_4e4fc4();
|
fwidthCoarse_4e4fc4();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthCoarse_4e4fc4();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidthCoarse_e653f7() {
|
|||||||
var res: vec2<f32> = fwidthCoarse(vec2<f32>());
|
var res: vec2<f32> = fwidthCoarse(vec2<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthCoarse_e653f7();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthCoarse_e653f7();
|
fwidthCoarse_e653f7();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthCoarse_e653f7();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidthCoarse_e653f7() {
|
|||||||
float2 res = fwidth(float2(0.0f, 0.0f));
|
float2 res = fwidth(float2(0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidthCoarse_e653f7();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidthCoarse_e653f7();
|
fwidthCoarse_e653f7();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidthCoarse_e653f7();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidthCoarse_e653f7() {
|
|||||||
float2 res = fwidth(float2());
|
float2 res = fwidth(float2());
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidthCoarse_e653f7();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidthCoarse_e653f7();
|
fwidthCoarse_e653f7();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidthCoarse_e653f7();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_YU6pTb.metal:5:10: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float2 res = fwidth(float2());
|
|
||||||
^
|
|
||||||
tint_YU6pTb.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v2f32 is not allowed within a vertex function
|
|
||||||
tint_YU6pTb.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v2f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,63 +1,31 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 24
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability DerivativeControl
|
OpCapability DerivativeControl
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidthCoarse_e653f7 "fwidthCoarse_e653f7"
|
OpName %fwidthCoarse_e653f7 "fwidthCoarse_e653f7"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%v2float = OpTypeVector %float 2
|
%v2float = OpTypeVector %float 2
|
||||||
%11 = OpConstantNull %v2float
|
%8 = OpConstantNull %v2float
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
%float_1 = OpConstant %float 1
|
%fwidthCoarse_e653f7 = OpFunction %void None %1
|
||||||
%fwidthCoarse_e653f7 = OpFunction %void None %5
|
%4 = OpLabel
|
||||||
%8 = OpLabel
|
%res = OpVariable %_ptr_Function_v2float Function %8
|
||||||
%res = OpVariable %_ptr_Function_v2float Function %11
|
%5 = OpFwidthCoarse %v2float %8
|
||||||
%9 = OpFwidthCoarse %v2float %11
|
OpStore %res %5
|
||||||
OpStore %res %9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%15 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidthCoarse_e653f7
|
||||||
%17 = OpFunctionCall %void %fwidthCoarse_e653f7
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%19 = OpLabel
|
|
||||||
%20 = OpFunctionCall %void %fwidthCoarse_e653f7
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%22 = OpLabel
|
|
||||||
%23 = OpFunctionCall %void %fwidthCoarse_e653f7
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '14[%vertex_main]'s callgraph contains function <id> 7[%fwidthCoarse_e653f7], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: FwidthCoarse
|
|
||||||
|
|
||||||
%fwidthCoarse_e653f7 = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidthCoarse_e653f7() {
|
|||||||
var res : vec2<f32> = fwidthCoarse(vec2<f32>());
|
var res : vec2<f32> = fwidthCoarse(vec2<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthCoarse_e653f7();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthCoarse_e653f7();
|
fwidthCoarse_e653f7();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthCoarse_e653f7();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidthFine_523fdc() {
|
|||||||
var res: vec3<f32> = fwidthFine(vec3<f32>());
|
var res: vec3<f32> = fwidthFine(vec3<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthFine_523fdc();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthFine_523fdc();
|
fwidthFine_523fdc();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthFine_523fdc();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidthFine_523fdc() {
|
|||||||
float3 res = fwidth(float3(0.0f, 0.0f, 0.0f));
|
float3 res = fwidth(float3(0.0f, 0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidthFine_523fdc();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidthFine_523fdc();
|
fwidthFine_523fdc();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidthFine_523fdc();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidthFine_523fdc() {
|
|||||||
float3 res = fwidth(float3());
|
float3 res = fwidth(float3());
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidthFine_523fdc();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidthFine_523fdc();
|
fwidthFine_523fdc();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidthFine_523fdc();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_T9vWZ8.metal:5:10: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float3 res = fwidth(float3());
|
|
||||||
^
|
|
||||||
tint_T9vWZ8.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v3f32 is not allowed within a vertex function
|
|
||||||
tint_T9vWZ8.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v3f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,63 +1,31 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 24
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability DerivativeControl
|
OpCapability DerivativeControl
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidthFine_523fdc "fwidthFine_523fdc"
|
OpName %fwidthFine_523fdc "fwidthFine_523fdc"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%v3float = OpTypeVector %float 3
|
%v3float = OpTypeVector %float 3
|
||||||
%11 = OpConstantNull %v3float
|
%8 = OpConstantNull %v3float
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
%float_1 = OpConstant %float 1
|
%fwidthFine_523fdc = OpFunction %void None %1
|
||||||
%fwidthFine_523fdc = OpFunction %void None %5
|
%4 = OpLabel
|
||||||
%8 = OpLabel
|
%res = OpVariable %_ptr_Function_v3float Function %8
|
||||||
%res = OpVariable %_ptr_Function_v3float Function %11
|
%5 = OpFwidthFine %v3float %8
|
||||||
%9 = OpFwidthFine %v3float %11
|
OpStore %res %5
|
||||||
OpStore %res %9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%15 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidthFine_523fdc
|
||||||
%17 = OpFunctionCall %void %fwidthFine_523fdc
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%19 = OpLabel
|
|
||||||
%20 = OpFunctionCall %void %fwidthFine_523fdc
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%22 = OpLabel
|
|
||||||
%23 = OpFunctionCall %void %fwidthFine_523fdc
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '14[%vertex_main]'s callgraph contains function <id> 7[%fwidthFine_523fdc], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: FwidthFine
|
|
||||||
|
|
||||||
%fwidthFine_523fdc = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidthFine_523fdc() {
|
|||||||
var res : vec3<f32> = fwidthFine(vec3<f32>());
|
var res : vec3<f32> = fwidthFine(vec3<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthFine_523fdc();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthFine_523fdc();
|
fwidthFine_523fdc();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthFine_523fdc();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidthFine_68f4ef() {
|
|||||||
var res: vec4<f32> = fwidthFine(vec4<f32>());
|
var res: vec4<f32> = fwidthFine(vec4<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthFine_68f4ef();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthFine_68f4ef();
|
fwidthFine_68f4ef();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthFine_68f4ef();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidthFine_68f4ef() {
|
|||||||
float4 res = fwidth(float4(0.0f, 0.0f, 0.0f, 0.0f));
|
float4 res = fwidth(float4(0.0f, 0.0f, 0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidthFine_68f4ef();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidthFine_68f4ef();
|
fwidthFine_68f4ef();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidthFine_68f4ef();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidthFine_68f4ef() {
|
|||||||
float4 res = fwidth(float4());
|
float4 res = fwidth(float4());
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidthFine_68f4ef();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidthFine_68f4ef();
|
fwidthFine_68f4ef();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidthFine_68f4ef();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_ojzEQ7.metal:5:10: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float4 res = fwidth(float4());
|
|
||||||
^
|
|
||||||
tint_ojzEQ7.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v4f32 is not allowed within a vertex function
|
|
||||||
tint_ojzEQ7.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v4f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,63 +1,31 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 24
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability DerivativeControl
|
OpCapability DerivativeControl
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidthFine_68f4ef "fwidthFine_68f4ef"
|
OpName %fwidthFine_68f4ef "fwidthFine_68f4ef"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%v4float = OpTypeVector %float 4
|
%v4float = OpTypeVector %float 4
|
||||||
%11 = OpConstantNull %v4float
|
%8 = OpConstantNull %v4float
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%fwidthFine_68f4ef = OpFunction %void None %1
|
||||||
%fwidthFine_68f4ef = OpFunction %void None %5
|
%4 = OpLabel
|
||||||
%8 = OpLabel
|
%res = OpVariable %_ptr_Function_v4float Function %8
|
||||||
%res = OpVariable %_ptr_Function_v4float Function %11
|
%5 = OpFwidthFine %v4float %8
|
||||||
%9 = OpFwidthFine %v4float %11
|
OpStore %res %5
|
||||||
OpStore %res %9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%15 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidthFine_68f4ef
|
||||||
%17 = OpFunctionCall %void %fwidthFine_68f4ef
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%19 = OpLabel
|
|
||||||
%20 = OpFunctionCall %void %fwidthFine_68f4ef
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%22 = OpLabel
|
|
||||||
%23 = OpFunctionCall %void %fwidthFine_68f4ef
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '14[%vertex_main]'s callgraph contains function <id> 7[%fwidthFine_68f4ef], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: FwidthFine
|
|
||||||
|
|
||||||
%fwidthFine_68f4ef = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidthFine_68f4ef() {
|
|||||||
var res : vec4<f32> = fwidthFine(vec4<f32>());
|
var res : vec4<f32> = fwidthFine(vec4<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthFine_68f4ef();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthFine_68f4ef();
|
fwidthFine_68f4ef();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthFine_68f4ef();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidthFine_f1742d() {
|
|||||||
var res: f32 = fwidthFine(1.0);
|
var res: f32 = fwidthFine(1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthFine_f1742d();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthFine_f1742d();
|
fwidthFine_f1742d();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthFine_f1742d();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidthFine_f1742d() {
|
|||||||
float res = fwidth(1.0f);
|
float res = fwidth(1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidthFine_f1742d();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidthFine_f1742d();
|
fwidthFine_f1742d();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidthFine_f1742d();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidthFine_f1742d() {
|
|||||||
float res = fwidth(1.0f);
|
float res = fwidth(1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidthFine_f1742d();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidthFine_f1742d();
|
fwidthFine_f1742d();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidthFine_f1742d();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_WPjnD2.metal:5:9: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float res = fwidth(1.0f);
|
|
||||||
^
|
|
||||||
tint_WPjnD2.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.f32 is not allowed within a vertex function
|
|
||||||
tint_WPjnD2.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,61 +1,31 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 22
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability DerivativeControl
|
OpCapability DerivativeControl
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidthFine_f1742d "fwidthFine_f1742d"
|
OpName %fwidthFine_f1742d "fwidthFine_f1742d"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%fwidthFine_f1742d = OpFunction %void None %5
|
%10 = OpConstantNull %float
|
||||||
%8 = OpLabel
|
%fwidthFine_f1742d = OpFunction %void None %1
|
||||||
%res = OpVariable %_ptr_Function_float Function %4
|
%4 = OpLabel
|
||||||
%9 = OpFwidthFine %float %float_1
|
%res = OpVariable %_ptr_Function_float Function %10
|
||||||
OpStore %res %9
|
%5 = OpFwidthFine %float %float_1
|
||||||
|
OpStore %res %5
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%14 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidthFine_f1742d
|
||||||
%15 = OpFunctionCall %void %fwidthFine_f1742d
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%17 = OpLabel
|
|
||||||
%18 = OpFunctionCall %void %fwidthFine_f1742d
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%20 = OpLabel
|
|
||||||
%21 = OpFunctionCall %void %fwidthFine_f1742d
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '13[%vertex_main]'s callgraph contains function <id> 7[%fwidthFine_f1742d], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: FwidthFine
|
|
||||||
|
|
||||||
%fwidthFine_f1742d = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidthFine_f1742d() {
|
|||||||
var res : f32 = fwidthFine(1.0);
|
var res : f32 = fwidthFine(1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthFine_f1742d();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthFine_f1742d();
|
fwidthFine_f1742d();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthFine_f1742d();
|
|
||||||
}
|
|
||||||
|
@ -28,18 +28,7 @@ fn fwidthFine_ff6aa0() {
|
|||||||
var res: vec2<f32> = fwidthFine(vec2<f32>());
|
var res: vec2<f32> = fwidthFine(vec2<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthFine_ff6aa0();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthFine_ff6aa0();
|
fwidthFine_ff6aa0();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthFine_ff6aa0();
|
|
||||||
}
|
|
||||||
|
@ -2,23 +2,7 @@ void fwidthFine_ff6aa0() {
|
|||||||
float2 res = fwidth(float2(0.0f, 0.0f));
|
float2 res = fwidth(float2(0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
|
||||||
float4 value : SV_Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
tint_symbol vertex_main() {
|
|
||||||
fwidthFine_ff6aa0();
|
|
||||||
const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
||||||
return tint_symbol_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
fwidthFine_ff6aa0();
|
fwidthFine_ff6aa0();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
|
||||||
void compute_main() {
|
|
||||||
fwidthFine_ff6aa0();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
#include <metal_stdlib>
|
#include <metal_stdlib>
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
@ -10,31 +5,8 @@ void fwidthFine_ff6aa0() {
|
|||||||
float2 res = fwidth(float2());
|
float2 res = fwidth(float2());
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex void vertex_main() {
|
|
||||||
fwidthFine_ff6aa0();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment void fragment_main() {
|
fragment void fragment_main() {
|
||||||
fwidthFine_ff6aa0();
|
fwidthFine_ff6aa0();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void compute_main() {
|
|
||||||
fwidthFine_ff6aa0();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tint_YbLbM2.metal:5:10: warning: unused variable 'res' [-Wunused-variable]
|
|
||||||
float2 res = fwidth(float2());
|
|
||||||
^
|
|
||||||
tint_YbLbM2.metal:8:13: error: vertex function 'vertex_main' uses unsupported builtin functions
|
|
||||||
vertex void vertex_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v2f32 is not allowed within a vertex function
|
|
||||||
tint_YbLbM2.metal:18:13: error: kernel function 'compute_main' uses unsupported builtin functions
|
|
||||||
kernel void compute_main() {
|
|
||||||
^
|
|
||||||
note: function air.fwidth.v2f32 is not allowed within a kernel function
|
|
||||||
1 warning and 2 errors generated.
|
|
||||||
|
@ -1,63 +1,31 @@
|
|||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 24
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability DerivativeControl
|
OpCapability DerivativeControl
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
|
||||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
|
||||||
OpExecutionMode %fragment_main OriginUpperLeft
|
OpExecutionMode %fragment_main OriginUpperLeft
|
||||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
||||||
OpName %tint_pointsize "tint_pointsize"
|
|
||||||
OpName %fwidthFine_ff6aa0 "fwidthFine_ff6aa0"
|
OpName %fwidthFine_ff6aa0 "fwidthFine_ff6aa0"
|
||||||
OpName %res "res"
|
OpName %res "res"
|
||||||
OpName %vertex_main "vertex_main"
|
|
||||||
OpName %fragment_main "fragment_main"
|
OpName %fragment_main "fragment_main"
|
||||||
OpName %compute_main "compute_main"
|
|
||||||
OpDecorate %tint_pointsize BuiltIn PointSize
|
|
||||||
%float = OpTypeFloat 32
|
|
||||||
%_ptr_Output_float = OpTypePointer Output %float
|
|
||||||
%4 = OpConstantNull %float
|
|
||||||
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
%v2float = OpTypeVector %float 2
|
%v2float = OpTypeVector %float 2
|
||||||
%11 = OpConstantNull %v2float
|
%8 = OpConstantNull %v2float
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
%float_1 = OpConstant %float 1
|
%fwidthFine_ff6aa0 = OpFunction %void None %1
|
||||||
%fwidthFine_ff6aa0 = OpFunction %void None %5
|
%4 = OpLabel
|
||||||
%8 = OpLabel
|
%res = OpVariable %_ptr_Function_v2float Function %8
|
||||||
%res = OpVariable %_ptr_Function_v2float Function %11
|
%5 = OpFwidthFine %v2float %8
|
||||||
%9 = OpFwidthFine %v2float %11
|
OpStore %res %5
|
||||||
OpStore %res %9
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %5
|
%fragment_main = OpFunction %void None %1
|
||||||
%15 = OpLabel
|
%12 = OpLabel
|
||||||
OpStore %tint_pointsize %float_1
|
%13 = OpFunctionCall %void %fwidthFine_ff6aa0
|
||||||
%17 = OpFunctionCall %void %fwidthFine_ff6aa0
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %5
|
|
||||||
%19 = OpLabel
|
|
||||||
%20 = OpFunctionCall %void %fwidthFine_ff6aa0
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
%compute_main = OpFunction %void None %5
|
|
||||||
%22 = OpLabel
|
|
||||||
%23 = OpFunctionCall %void %fwidthFine_ff6aa0
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
Validation Failure:
|
|
||||||
1:1: OpEntryPoint Entry Point <id> '14[%vertex_main]'s callgraph contains function <id> 7[%fwidthFine_ff6aa0], which cannot be used with the current execution model:
|
|
||||||
Derivative instructions require Fragment or GLCompute execution model: FwidthFine
|
|
||||||
|
|
||||||
%fwidthFine_ff6aa0 = OpFunction %void None %5
|
|
||||||
|
|
||||||
|
@ -2,18 +2,7 @@ fn fwidthFine_ff6aa0() {
|
|||||||
var res : vec2<f32> = fwidthFine(vec2<f32>());
|
var res : vec2<f32> = fwidthFine(vec2<f32>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(vertex)]]
|
|
||||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
|
||||||
fwidthFine_ff6aa0();
|
|
||||||
return vec4<f32>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[[stage(fragment)]]
|
[[stage(fragment)]]
|
||||||
fn fragment_main() {
|
fn fragment_main() {
|
||||||
fwidthFine_ff6aa0();
|
fwidthFine_ff6aa0();
|
||||||
}
|
}
|
||||||
|
|
||||||
[[stage(compute)]]
|
|
||||||
fn compute_main() {
|
|
||||||
fwidthFine_ff6aa0();
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user