yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Anders LeinoAdd explanation for disabled WGPU tests (#5628)e25683661

master
1.8 KiB86 linesraw
1//TEST(compute, vulkan):COMPARE_RENDER_COMPUTE:-vk -shaderobj -render-feature shader-resource-min-lod
2//TEST(compute):COMPARE_RENDER_COMPUTE:-shaderobj -render-feature shader-resource-min-lod
3// WGSL: There is no SampleGrad taking a LOD-clamp parameter in
4
5//TEST_INPUT: Texture2D(size=4, content = one):name=t2D
6//TEST_INPUT: Sampler:name=samplerState
7//TEST_INPUT: ubuffer(data=[0], stride=4):out,name=outputBuffer
8
9Texture2D  t2D;
10SamplerState samplerState;
11RWStructuredBuffer<float> outputBuffer;
12
13cbuffer Uniforms
14{
15	float4x4 modelViewProjection;
16}
17
18struct AssembledVertex
19{
20	float3	position;
21	float3	color;
22    float2  uv;
23};
24
25struct CoarseVertex
26{
27	float3	color;
28    float2  uv;
29};
30
31struct Fragment
32{
33	float4 color;
34};
35
36
37// Vertex  Shader
38
39struct VertexStageInput
40{
41	AssembledVertex assembledVertex	: A;
42};
43
44struct VertexStageOutput
45{
46	CoarseVertex	coarseVertex	: CoarseVertex;
47	float4			sv_position		: SV_Position;
48};
49
50VertexStageOutput vertexMain(VertexStageInput input)
51{
52	VertexStageOutput output;
53
54	float3 position = input.assembledVertex.position;
55	float3 color	= input.assembledVertex.color;
56
57	output.coarseVertex.color = color;
58	output.sv_position = mul(modelViewProjection, float4(position, 1.0));
59    output.coarseVertex.uv = input.assembledVertex.uv;
60	return output;
61}
62
63// Fragment Shader
64
65struct FragmentStageInput
66{
67	CoarseVertex	coarseVertex	: CoarseVertex;
68};
69
70struct FragmentStageOutput
71{
72	Fragment fragment	: SV_Target;
73};
74
75FragmentStageOutput fragmentMain(FragmentStageInput input)
76{
77	FragmentStageOutput output;
78
79	float3 color = input.coarseVertex.color;
80    float2 uv = input.coarseVertex.uv;
81	output.fragment.color = float4(color, 1.0);
82
83    float4 val = t2D.SampleGrad(samplerState, uv, float2(0,0), float2(0,0), 0, 0.5f);   
84    outputBuffer[0] = val.x;
85	return output;
86}