mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-06-05 22:23:29 +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],
|
||||
/* parameters */ &kParameters[564],
|
||||
/* return matcher indices */ &kMatcherIndices[7],
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||
/* is_deprecated */ false,
|
||||
},
|
||||
{
|
||||
@ -6819,7 +6819,7 @@ constexpr OverloadInfo kOverloads[] = {
|
||||
/* open numbers */ &kOpenNumbers[1],
|
||||
/* parameters */ &kParameters[563],
|
||||
/* return matcher indices */ &kMatcherIndices[10],
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||
/* is_deprecated */ false,
|
||||
},
|
||||
{
|
||||
@ -6831,7 +6831,7 @@ constexpr OverloadInfo kOverloads[] = {
|
||||
/* open numbers */ &kOpenNumbers[7],
|
||||
/* parameters */ &kParameters[562],
|
||||
/* return matcher indices */ &kMatcherIndices[7],
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||
/* is_deprecated */ false,
|
||||
},
|
||||
{
|
||||
@ -6843,7 +6843,7 @@ constexpr OverloadInfo kOverloads[] = {
|
||||
/* open numbers */ &kOpenNumbers[1],
|
||||
/* parameters */ &kParameters[561],
|
||||
/* return matcher indices */ &kMatcherIndices[10],
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||
/* is_deprecated */ false,
|
||||
},
|
||||
{
|
||||
@ -6855,7 +6855,7 @@ constexpr OverloadInfo kOverloads[] = {
|
||||
/* open numbers */ &kOpenNumbers[7],
|
||||
/* parameters */ &kParameters[560],
|
||||
/* return matcher indices */ &kMatcherIndices[7],
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||
/* is_deprecated */ false,
|
||||
},
|
||||
{
|
||||
@ -6867,7 +6867,7 @@ constexpr OverloadInfo kOverloads[] = {
|
||||
/* open numbers */ &kOpenNumbers[1],
|
||||
/* parameters */ &kParameters[559],
|
||||
/* return matcher indices */ &kMatcherIndices[10],
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
|
||||
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
|
||||
/* is_deprecated */ false,
|
||||
},
|
||||
{
|
||||
|
@ -311,12 +311,12 @@ fn fract(f32) -> 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<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
|
||||
fn fwidth<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||
fn fwidthCoarse(f32) -> f32
|
||||
fn fwidthCoarse<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||
fn fwidthFine(f32) -> f32
|
||||
fn fwidthFine<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||
[[stage("fragment")]] fn fwidth(f32) -> f32
|
||||
[[stage("fragment")]] fn fwidth<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||
[[stage("fragment")]] fn fwidthCoarse(f32) -> f32
|
||||
[[stage("fragment")]] fn fwidthCoarse<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||
[[stage("fragment")]] fn fwidthFine(f32) -> f32
|
||||
[[stage("fragment")]] fn fwidthFine<N: num>(vec<N, f32>) -> vec<N, f32>
|
||||
fn ignore<T>(T)
|
||||
fn inverseSqrt(f32) -> 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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidth_5d1b39();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
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));
|
||||
}
|
||||
|
||||
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() {
|
||||
fwidth_5d1b39();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidth_5d1b39();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidth_5d1b39() {
|
||||
float3 res = fwidth(float3());
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidth_5d1b39();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidth_5d1b39();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 24
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidth_5d1b39 "fwidth_5d1b39"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v3float = OpTypeVector %float 3
|
||||
%11 = OpConstantNull %v3float
|
||||
%8 = OpConstantNull %v3float
|
||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||
%float_1 = OpConstant %float 1
|
||||
%fwidth_5d1b39 = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v3float Function %11
|
||||
%9 = OpFwidth %v3float %11
|
||||
OpStore %res %9
|
||||
%fwidth_5d1b39 = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v3float Function %8
|
||||
%5 = OpFwidth %v3float %8
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%15 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%17 = OpFunctionCall %void %fwidth_5d1b39
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidth_5d1b39
|
||||
OpReturn
|
||||
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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidth_5d1b39();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidth_5d1b39();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidth_5d1b39();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidth_b83ebb() {
|
||||
var res: vec2<f32> = fwidth(vec2<f32>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidth_b83ebb();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidth_b83ebb();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidth_b83ebb();
|
||||
}
|
||||
|
@ -2,23 +2,7 @@ void fwidth_b83ebb() {
|
||||
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() {
|
||||
fwidth_b83ebb();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidth_b83ebb();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidth_b83ebb() {
|
||||
float2 res = fwidth(float2());
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidth_b83ebb();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidth_b83ebb();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 24
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidth_b83ebb "fwidth_b83ebb"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v2float = OpTypeVector %float 2
|
||||
%11 = OpConstantNull %v2float
|
||||
%8 = OpConstantNull %v2float
|
||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||
%float_1 = OpConstant %float 1
|
||||
%fwidth_b83ebb = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v2float Function %11
|
||||
%9 = OpFwidth %v2float %11
|
||||
OpStore %res %9
|
||||
%fwidth_b83ebb = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v2float Function %8
|
||||
%5 = OpFwidth %v2float %8
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%15 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%17 = OpFunctionCall %void %fwidth_b83ebb
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidth_b83ebb
|
||||
OpReturn
|
||||
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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidth_b83ebb();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidth_b83ebb();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidth_b83ebb();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidth_d2ab9a() {
|
||||
var res: vec4<f32> = fwidth(vec4<f32>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidth_d2ab9a();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
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));
|
||||
}
|
||||
|
||||
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() {
|
||||
fwidth_d2ab9a();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidth_d2ab9a();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidth_d2ab9a() {
|
||||
float4 res = fwidth(float4());
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidth_d2ab9a();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidth_d2ab9a();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 24
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidth_d2ab9a "fwidth_d2ab9a"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%11 = OpConstantNull %v4float
|
||||
%8 = OpConstantNull %v4float
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%float_1 = OpConstant %float 1
|
||||
%fwidth_d2ab9a = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v4float Function %11
|
||||
%9 = OpFwidth %v4float %11
|
||||
OpStore %res %9
|
||||
%fwidth_d2ab9a = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v4float Function %8
|
||||
%5 = OpFwidth %v4float %8
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%15 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%17 = OpFunctionCall %void %fwidth_d2ab9a
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidth_d2ab9a
|
||||
OpReturn
|
||||
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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidth_d2ab9a();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidth_d2ab9a();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidth_d2ab9a();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidth_df38ef() {
|
||||
var res: f32 = fwidth(1.0);
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidth_df38ef();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidth_df38ef();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidth_df38ef();
|
||||
}
|
||||
|
@ -2,23 +2,7 @@ void fwidth_df38ef() {
|
||||
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() {
|
||||
fwidth_df38ef();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidth_df38ef();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidth_df38ef() {
|
||||
float res = fwidth(1.0f);
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidth_df38ef();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidth_df38ef();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 22
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidth_df38ef "fwidth_df38ef"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%float_1 = OpConstant %float 1
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%fwidth_df38ef = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_float Function %4
|
||||
%9 = OpFwidth %float %float_1
|
||||
OpStore %res %9
|
||||
%10 = OpConstantNull %float
|
||||
%fwidth_df38ef = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_float Function %10
|
||||
%5 = OpFwidth %float %float_1
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%14 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%15 = OpFunctionCall %void %fwidth_df38ef
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidth_df38ef
|
||||
OpReturn
|
||||
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);
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidth_df38ef();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidth_df38ef();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidth_df38ef();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidthCoarse_159c8a() {
|
||||
var res: f32 = fwidthCoarse(1.0);
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthCoarse_159c8a();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthCoarse_159c8a();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthCoarse_159c8a();
|
||||
}
|
||||
|
@ -2,23 +2,7 @@ void fwidthCoarse_159c8a() {
|
||||
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() {
|
||||
fwidthCoarse_159c8a();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidthCoarse_159c8a();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidthCoarse_159c8a() {
|
||||
float res = fwidth(1.0f);
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidthCoarse_159c8a();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidthCoarse_159c8a();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 22
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability DerivativeControl
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidthCoarse_159c8a "fwidthCoarse_159c8a"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%float_1 = OpConstant %float 1
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%fwidthCoarse_159c8a = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_float Function %4
|
||||
%9 = OpFwidthCoarse %float %float_1
|
||||
OpStore %res %9
|
||||
%10 = OpConstantNull %float
|
||||
%fwidthCoarse_159c8a = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_float Function %10
|
||||
%5 = OpFwidthCoarse %float %float_1
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%14 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%15 = OpFunctionCall %void %fwidthCoarse_159c8a
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidthCoarse_159c8a
|
||||
OpReturn
|
||||
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);
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthCoarse_159c8a();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthCoarse_159c8a();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthCoarse_159c8a();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidthCoarse_1e59d9() {
|
||||
var res: vec3<f32> = fwidthCoarse(vec3<f32>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthCoarse_1e59d9();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
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));
|
||||
}
|
||||
|
||||
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() {
|
||||
fwidthCoarse_1e59d9();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidthCoarse_1e59d9();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidthCoarse_1e59d9() {
|
||||
float3 res = fwidth(float3());
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidthCoarse_1e59d9();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidthCoarse_1e59d9();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 24
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability DerivativeControl
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidthCoarse_1e59d9 "fwidthCoarse_1e59d9"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v3float = OpTypeVector %float 3
|
||||
%11 = OpConstantNull %v3float
|
||||
%8 = OpConstantNull %v3float
|
||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||
%float_1 = OpConstant %float 1
|
||||
%fwidthCoarse_1e59d9 = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v3float Function %11
|
||||
%9 = OpFwidthCoarse %v3float %11
|
||||
OpStore %res %9
|
||||
%fwidthCoarse_1e59d9 = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v3float Function %8
|
||||
%5 = OpFwidthCoarse %v3float %8
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%15 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%17 = OpFunctionCall %void %fwidthCoarse_1e59d9
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidthCoarse_1e59d9
|
||||
OpReturn
|
||||
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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthCoarse_1e59d9();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthCoarse_1e59d9();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthCoarse_1e59d9();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidthCoarse_4e4fc4() {
|
||||
var res: vec4<f32> = fwidthCoarse(vec4<f32>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthCoarse_4e4fc4();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
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));
|
||||
}
|
||||
|
||||
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() {
|
||||
fwidthCoarse_4e4fc4();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidthCoarse_4e4fc4();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidthCoarse_4e4fc4() {
|
||||
float4 res = fwidth(float4());
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidthCoarse_4e4fc4();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidthCoarse_4e4fc4();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 24
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability DerivativeControl
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidthCoarse_4e4fc4 "fwidthCoarse_4e4fc4"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%11 = OpConstantNull %v4float
|
||||
%8 = OpConstantNull %v4float
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%float_1 = OpConstant %float 1
|
||||
%fwidthCoarse_4e4fc4 = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v4float Function %11
|
||||
%9 = OpFwidthCoarse %v4float %11
|
||||
OpStore %res %9
|
||||
%fwidthCoarse_4e4fc4 = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v4float Function %8
|
||||
%5 = OpFwidthCoarse %v4float %8
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%15 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%17 = OpFunctionCall %void %fwidthCoarse_4e4fc4
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidthCoarse_4e4fc4
|
||||
OpReturn
|
||||
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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthCoarse_4e4fc4();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthCoarse_4e4fc4();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthCoarse_4e4fc4();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidthCoarse_e653f7() {
|
||||
var res: vec2<f32> = fwidthCoarse(vec2<f32>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthCoarse_e653f7();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthCoarse_e653f7();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthCoarse_e653f7();
|
||||
}
|
||||
|
@ -2,23 +2,7 @@ void fwidthCoarse_e653f7() {
|
||||
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() {
|
||||
fwidthCoarse_e653f7();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidthCoarse_e653f7();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidthCoarse_e653f7() {
|
||||
float2 res = fwidth(float2());
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidthCoarse_e653f7();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidthCoarse_e653f7();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 24
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability DerivativeControl
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidthCoarse_e653f7 "fwidthCoarse_e653f7"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v2float = OpTypeVector %float 2
|
||||
%11 = OpConstantNull %v2float
|
||||
%8 = OpConstantNull %v2float
|
||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||
%float_1 = OpConstant %float 1
|
||||
%fwidthCoarse_e653f7 = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v2float Function %11
|
||||
%9 = OpFwidthCoarse %v2float %11
|
||||
OpStore %res %9
|
||||
%fwidthCoarse_e653f7 = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v2float Function %8
|
||||
%5 = OpFwidthCoarse %v2float %8
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%15 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%17 = OpFunctionCall %void %fwidthCoarse_e653f7
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidthCoarse_e653f7
|
||||
OpReturn
|
||||
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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthCoarse_e653f7();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthCoarse_e653f7();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthCoarse_e653f7();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidthFine_523fdc() {
|
||||
var res: vec3<f32> = fwidthFine(vec3<f32>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthFine_523fdc();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
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));
|
||||
}
|
||||
|
||||
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() {
|
||||
fwidthFine_523fdc();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidthFine_523fdc();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidthFine_523fdc() {
|
||||
float3 res = fwidth(float3());
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidthFine_523fdc();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidthFine_523fdc();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 24
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability DerivativeControl
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidthFine_523fdc "fwidthFine_523fdc"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v3float = OpTypeVector %float 3
|
||||
%11 = OpConstantNull %v3float
|
||||
%8 = OpConstantNull %v3float
|
||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||
%float_1 = OpConstant %float 1
|
||||
%fwidthFine_523fdc = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v3float Function %11
|
||||
%9 = OpFwidthFine %v3float %11
|
||||
OpStore %res %9
|
||||
%fwidthFine_523fdc = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v3float Function %8
|
||||
%5 = OpFwidthFine %v3float %8
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%15 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%17 = OpFunctionCall %void %fwidthFine_523fdc
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidthFine_523fdc
|
||||
OpReturn
|
||||
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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthFine_523fdc();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthFine_523fdc();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthFine_523fdc();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidthFine_68f4ef() {
|
||||
var res: vec4<f32> = fwidthFine(vec4<f32>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthFine_68f4ef();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
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));
|
||||
}
|
||||
|
||||
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() {
|
||||
fwidthFine_68f4ef();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidthFine_68f4ef();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidthFine_68f4ef() {
|
||||
float4 res = fwidth(float4());
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidthFine_68f4ef();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidthFine_68f4ef();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 24
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability DerivativeControl
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidthFine_68f4ef "fwidthFine_68f4ef"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%11 = OpConstantNull %v4float
|
||||
%8 = OpConstantNull %v4float
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%float_1 = OpConstant %float 1
|
||||
%fwidthFine_68f4ef = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v4float Function %11
|
||||
%9 = OpFwidthFine %v4float %11
|
||||
OpStore %res %9
|
||||
%fwidthFine_68f4ef = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v4float Function %8
|
||||
%5 = OpFwidthFine %v4float %8
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%15 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%17 = OpFunctionCall %void %fwidthFine_68f4ef
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidthFine_68f4ef
|
||||
OpReturn
|
||||
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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthFine_68f4ef();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthFine_68f4ef();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthFine_68f4ef();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidthFine_f1742d() {
|
||||
var res: f32 = fwidthFine(1.0);
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthFine_f1742d();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthFine_f1742d();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthFine_f1742d();
|
||||
}
|
||||
|
@ -2,23 +2,7 @@ void fwidthFine_f1742d() {
|
||||
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() {
|
||||
fwidthFine_f1742d();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidthFine_f1742d();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidthFine_f1742d() {
|
||||
float res = fwidth(1.0f);
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidthFine_f1742d();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidthFine_f1742d();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 22
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability DerivativeControl
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidthFine_f1742d "fwidthFine_f1742d"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%float_1 = OpConstant %float 1
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%fwidthFine_f1742d = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_float Function %4
|
||||
%9 = OpFwidthFine %float %float_1
|
||||
OpStore %res %9
|
||||
%10 = OpConstantNull %float
|
||||
%fwidthFine_f1742d = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_float Function %10
|
||||
%5 = OpFwidthFine %float %float_1
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%14 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%15 = OpFunctionCall %void %fwidthFine_f1742d
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidthFine_f1742d
|
||||
OpReturn
|
||||
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);
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthFine_f1742d();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthFine_f1742d();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthFine_f1742d();
|
||||
}
|
||||
|
@ -28,18 +28,7 @@ fn fwidthFine_ff6aa0() {
|
||||
var res: vec2<f32> = fwidthFine(vec2<f32>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthFine_ff6aa0();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthFine_ff6aa0();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthFine_ff6aa0();
|
||||
}
|
||||
|
@ -2,23 +2,7 @@ void fwidthFine_ff6aa0() {
|
||||
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() {
|
||||
fwidthFine_ff6aa0();
|
||||
return;
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
void compute_main() {
|
||||
fwidthFine_ff6aa0();
|
||||
return;
|
||||
}
|
||||
|
@ -1,8 +1,3 @@
|
||||
SKIP: FAILED
|
||||
|
||||
|
||||
|
||||
Validation Failure:
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
@ -10,31 +5,8 @@ void fwidthFine_ff6aa0() {
|
||||
float2 res = fwidth(float2());
|
||||
}
|
||||
|
||||
vertex void vertex_main() {
|
||||
fwidthFine_ff6aa0();
|
||||
return;
|
||||
}
|
||||
|
||||
fragment void fragment_main() {
|
||||
fwidthFine_ff6aa0();
|
||||
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
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 24
|
||||
; Bound: 14
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability DerivativeControl
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
|
||||
OpEntryPoint Fragment %fragment_main "fragment_main"
|
||||
OpEntryPoint GLCompute %compute_main "compute_main"
|
||||
OpExecutionMode %fragment_main OriginUpperLeft
|
||||
OpExecutionMode %compute_main LocalSize 1 1 1
|
||||
OpName %tint_pointsize "tint_pointsize"
|
||||
OpName %fwidthFine_ff6aa0 "fwidthFine_ff6aa0"
|
||||
OpName %res "res"
|
||||
OpName %vertex_main "vertex_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
|
||||
%5 = OpTypeFunction %void
|
||||
%1 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v2float = OpTypeVector %float 2
|
||||
%11 = OpConstantNull %v2float
|
||||
%8 = OpConstantNull %v2float
|
||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||
%float_1 = OpConstant %float 1
|
||||
%fwidthFine_ff6aa0 = OpFunction %void None %5
|
||||
%8 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v2float Function %11
|
||||
%9 = OpFwidthFine %v2float %11
|
||||
OpStore %res %9
|
||||
%fwidthFine_ff6aa0 = OpFunction %void None %1
|
||||
%4 = OpLabel
|
||||
%res = OpVariable %_ptr_Function_v2float Function %8
|
||||
%5 = OpFwidthFine %v2float %8
|
||||
OpStore %res %5
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%vertex_main = OpFunction %void None %5
|
||||
%15 = OpLabel
|
||||
OpStore %tint_pointsize %float_1
|
||||
%17 = OpFunctionCall %void %fwidthFine_ff6aa0
|
||||
%fragment_main = OpFunction %void None %1
|
||||
%12 = OpLabel
|
||||
%13 = OpFunctionCall %void %fwidthFine_ff6aa0
|
||||
OpReturn
|
||||
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>());
|
||||
}
|
||||
|
||||
[[stage(vertex)]]
|
||||
fn vertex_main() -> [[builtin(position)]] vec4<f32> {
|
||||
fwidthFine_ff6aa0();
|
||||
return vec4<f32>();
|
||||
}
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn fragment_main() {
|
||||
fwidthFine_ff6aa0();
|
||||
}
|
||||
|
||||
[[stage(compute)]]
|
||||
fn compute_main() {
|
||||
fwidthFine_ff6aa0();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user