yum-mirror/slang

Making it easier to work with shaders

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

Yong HeVarious WGSL fixes. (#5490)7c2ff5475

master
1.6 KiB43 linesraw
1//TEST:COMPILE: -entry computeMain -stage compute -target callable tests/hlsl-intrinsic/sampler-feedback/compute-sampler-feedback.slang
2
3// Not available on non PS shader
4// dx.op.writeSamplerFeedback 	WriteSamplerFeedback 	
5// dx.op.writeSamplerFeedbackBias 	WriteSamplerFeedbackBias
6
7FeedbackTexture2D<SAMPLER_FEEDBACK_MIN_MIP> feedbackMinMip;
8FeedbackTexture2D<SAMPLER_FEEDBACK_MIP_REGION_USED> feedbackMipRegionUsed;
9FeedbackTexture2DArray<SAMPLER_FEEDBACK_MIN_MIP> feedbackMinMipArray;
10FeedbackTexture2DArray<SAMPLER_FEEDBACK_MIP_REGION_USED> feebackMipRegionUsedArray;
11
12Texture2D<float> tex2D;
13Texture2DArray<float> tex2DArray;
14SamplerState samp;
15
16[numthreads(4, 1, 1)]
17void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
18{
19    float2 coords2D = float2(1, 2) * dispatchThreadID.x;
20    float3 coords2DArray = float3(1, 2, 3) * dispatchThreadID.x;
21    
22    float clamp = 4;
23    float bias = 0.5F;
24    float lod = 6;
25    float2 ddx = float2(1.0F / 32, 2.0F / 32);
26    float2 ddy = float2(3.0F / 32, 4.0F / 32);
27    
28    uint width, height, elements, mipLevels;
29    feedbackMinMip.GetDimensions(width, height);
30    feedbackMinMipArray.GetDimensions(width, height, elements);
31    
32    feedbackMinMip.GetDimensions(0, width, height, mipLevels);
33    feedbackMinMipArray.GetDimensions(0, width, height, elements, mipLevels);
34    
35    
36    feedbackMinMip.WriteSamplerFeedbackGrad(tex2D, samp, coords2D, ddx, ddy, clamp);
37    
38    // Level
39    feedbackMinMip.WriteSamplerFeedbackLevel(tex2D, samp, coords2D, lod);
40    
41    // No Clamp
42    feedbackMinMip.WriteSamplerFeedbackGrad(tex2D, samp, coords2D, ddx, ddy);
43}