yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
7c2ff5475
master
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}