Split Texture test into separate 1D and 2D tests.
This improves the test output for Metal. Previously, the Metal output was just an error message, since 1D textures were unsupported. Now we have a valid golden output for the 2D case in Metal. (1D is still unsupported and is likely to remain unsupported; Skia currently has no use case for 1D textures.) Change-Id: I91977712030f08e371cc6bfb2afa578940ca00b7 Bug: skia:10797 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/330940 Auto-Submit: John Stiles <johnstiles@google.com> Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
This commit is contained in:
parent
67e58cb909
commit
47ee0caa10
@ -232,7 +232,8 @@ sksl_shared_tests = [
|
||||
"$_tests/sksl/shared/SwizzleScalar.sksl",
|
||||
"$_tests/sksl/shared/TernaryAsLValueEntirelyFoldable.sksl",
|
||||
"$_tests/sksl/shared/TernaryAsLValueFoldableTest.sksl",
|
||||
"$_tests/sksl/shared/Texture.sksl",
|
||||
"$_tests/sksl/shared/Texture1D.sksl",
|
||||
"$_tests/sksl/shared/Texture2D.sksl",
|
||||
"$_tests/sksl/shared/TextureSharpen.sksl",
|
||||
"$_tests/sksl/shared/UnaryPositiveNegative.sksl",
|
||||
"$_tests/sksl/shared/UnusedVariables.sksl",
|
||||
|
@ -1,10 +0,0 @@
|
||||
layout(binding=0) uniform sampler1D one;
|
||||
layout(binding=1) uniform sampler2D two;
|
||||
|
||||
void main() {
|
||||
float4 a = sample(one, 0);
|
||||
float4 b = sample(two, float2(0));
|
||||
float4 c = sample(one, float2(0));
|
||||
float4 d = sample(two, float3(0));
|
||||
sk_FragColor = half4(half(a.x), half(b.x), half(c.x), half(d.x));
|
||||
}
|
7
tests/sksl/shared/Texture1D.sksl
Normal file
7
tests/sksl/shared/Texture1D.sksl
Normal file
@ -0,0 +1,7 @@
|
||||
layout(binding=0) uniform sampler1D tex;
|
||||
|
||||
void main() {
|
||||
float4 a = sample(tex, 0);
|
||||
float4 b = sample(tex, float2(0));
|
||||
sk_FragColor = half4(float2(a.xy), float2(b.zw));
|
||||
}
|
7
tests/sksl/shared/Texture2D.sksl
Normal file
7
tests/sksl/shared/Texture2D.sksl
Normal file
@ -0,0 +1,7 @@
|
||||
layout(binding=0) uniform sampler2D tex;
|
||||
|
||||
void main() {
|
||||
float4 a = sample(tex, float2(0));
|
||||
float4 b = sample(tex, float3(0));
|
||||
sk_FragColor = half4(float2(a.xy), float2(b.zw));
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
|
||||
out vec4 sk_FragColor;
|
||||
layout (binding = 0) uniform sampler1D one;
|
||||
layout (binding = 1) uniform sampler2D two;
|
||||
void main() {
|
||||
vec4 a = texture(one, 0.0);
|
||||
vec4 b = texture(two, vec2(0.0));
|
||||
vec4 c = textureProj(one, vec2(0.0));
|
||||
vec4 d = textureProj(two, vec3(0.0));
|
||||
sk_FragColor = vec4(a.x, b.x, c.x, d.x);
|
||||
}
|
8
tests/sksl/shared/golden/Texture1D.glsl
Normal file
8
tests/sksl/shared/golden/Texture1D.glsl
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
out vec4 sk_FragColor;
|
||||
layout (binding = 0) uniform sampler1D tex;
|
||||
void main() {
|
||||
vec4 a = texture(tex, 0.0);
|
||||
vec4 b = textureProj(tex, vec2(0.0));
|
||||
sk_FragColor = vec4(a.xy, b.zw);
|
||||
}
|
8
tests/sksl/shared/golden/Texture2D.glsl
Normal file
8
tests/sksl/shared/golden/Texture2D.glsl
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
out vec4 sk_FragColor;
|
||||
layout (binding = 0) uniform sampler2D tex;
|
||||
void main() {
|
||||
vec4 a = texture(tex, vec2(0.0));
|
||||
vec4 b = textureProj(tex, vec3(0.0));
|
||||
sk_FragColor = vec4(a.xy, b.zw);
|
||||
}
|
24
tests/sksl/shared/golden/Texture2D.metal
Normal file
24
tests/sksl/shared/golden/Texture2D.metal
Normal file
@ -0,0 +1,24 @@
|
||||
#include <metal_stdlib>
|
||||
#include <simd/simd.h>
|
||||
using namespace metal;
|
||||
struct Inputs {
|
||||
};
|
||||
struct Outputs {
|
||||
float4 sk_FragColor [[color(0)]];
|
||||
};
|
||||
struct Globals {
|
||||
texture2d<float> tex;
|
||||
sampler texSmplr;
|
||||
};
|
||||
fragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d<float> tex[[texture(0)]], sampler texSmplr[[sampler(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
||||
Globals globalStruct{tex, texSmplr};
|
||||
thread Globals* _globals = &globalStruct;
|
||||
(void)_globals;
|
||||
Outputs _outputStruct;
|
||||
thread Outputs* _out = &_outputStruct;
|
||||
float3 tmpCoord0;
|
||||
float4 a = _globals->tex.sample(_globals->texSmplr, float2(0.0));
|
||||
float4 b = _globals->tex.sample(_globals->texSmplr, (tmpCoord0 = float3(0.0), tmpCoord0.xy / tmpCoord0.z));
|
||||
_out->sk_FragColor = float4(a.xy, b.zw);
|
||||
return *_out;
|
||||
}
|
Loading…
Reference in New Issue
Block a user