No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ComputeRaygenShader.hlsl 1010B

1234567891011121314151617181920212223242526
  1. #define WIDTH_OFFSET 0
  2. #define HEIGHT_OFFSET 1
  3. #define DEPTH_OFFSET 2
  4. StructuredBuffer<uint> g_Dimensions;
  5. #ifndef UNIFIED_RT_RAYGEN_FUNC_NAME
  6. #define UNIFIED_RT_RAYGEN_FUNC_NAME RayGenExecute
  7. #endif
  8. #pragma kernel MainRayGenShader
  9. [numthreads(UNIFIED_RT_GROUP_SIZE_X, UNIFIED_RT_GROUP_SIZE_Y, 1)]
  10. void MainRayGenShader(
  11. in uint3 gidx: SV_DispatchThreadID,
  12. in uint lidx : SV_GroupIndex)
  13. {
  14. if (gidx.x >= g_Dimensions[WIDTH_OFFSET] || gidx.y >= g_Dimensions[HEIGHT_OFFSET] || gidx.z >= g_Dimensions[DEPTH_OFFSET])
  15. return;
  16. UnifiedRT::DispatchInfo dispatchInfo;
  17. dispatchInfo.dispatchThreadID = gidx;
  18. dispatchInfo.dispatchDimensionsInThreads = int3(g_Dimensions[WIDTH_OFFSET], g_Dimensions[HEIGHT_OFFSET], g_Dimensions[DEPTH_OFFSET]);
  19. dispatchInfo.localThreadIndex = lidx;
  20. dispatchInfo.globalThreadIndex = gidx.x + gidx.y * g_Dimensions[WIDTH_OFFSET] + gidx.z * (g_Dimensions[WIDTH_OFFSET] * g_Dimensions[HEIGHT_OFFSET]);
  21. UNIFIED_RT_RAYGEN_FUNC_NAME(dispatchInfo);
  22. }