LinearizeDepthCS.hlsl 933 B

1234567891011121314151617181920212223242526272829303132333435
  1. // RUN: %dxc -E main -T cs_6_0 %s | FileCheck %s
  2. // CHECK: threadId
  3. // CHECK: textureLoad
  4. // CHECK: textureStore
  5. //
  6. // Copyright (c) Microsoft. All rights reserved.
  7. // This code is licensed under the MIT License (MIT).
  8. // THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
  9. // ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
  10. // IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
  11. // PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
  12. //
  13. // Developed by Minigraph
  14. //
  15. // Author: James Stanard
  16. //
  17. #include "SSAORS.hlsli"
  18. RWTexture2D<float> LinearZ : register(u0);
  19. Texture2D<float> Depth : register(t0);
  20. cbuffer ConstantBuffer_x : register(b0)
  21. {
  22. float ZMagic; // (zFar - zNear) / zNear
  23. }
  24. [RootSignature(SSAO_RootSig)]
  25. [numthreads( 16, 16, 1 )]
  26. void main( uint3 Gid : SV_GroupID, uint GI : SV_GroupIndex, uint3 GTid : SV_GroupThreadID, uint3 DTid : SV_DispatchThreadID )
  27. {
  28. LinearZ[DTid.xy] = 1.0 / (ZMagic * Depth[DTid.xy] + 1.0);
  29. }