Callable shaders are similar to hit shaders, but they can be invoked from RayGen shaders without tracing any rays. They have records in the shader binding table and allow local parameters to be bound. The total number of callable shader slots/records must be declared when creating a ray tracing scene. Each record must be filled using SetRayTracingCallableShader() command, which is similar to SetRayTracingHitGroup().
#jira UE-69988
#rb Juan.Canada
[CL 6078802 by Yuriy ODonnell in Dev-Rendering branch]
* Fixed VertexFactoryInterpolate() texcoord interpolation when USE_PARTICLE_SUBUVS=1 (new compiler generates code that fails DXIL validation if texcoords are uninitialized)
* Use D3D_SIT_RTACCELERATIONSTRUCTURE define instead of hard-coded value in D3DShaderCompiler.cpp (addresses an old dxr_todo)
#jira UE-72201
#rb Charles.deRousiers
[CL 5819385 by Yuriy ODonnell in Dev-Rendering branch]
Wave intrinsics can be enabled for a shader by providing CFLAG_WaveOperations to the compiler flags in ModifyCompilationEnvironment().
Run-time availability must be queried by checking GRHISupportsWaveOperations before trying to use a shader that uses wave intrinsics.
Removed all RHI_RAYTRACING define checks from D3DShaderCompiler.cpp.
#lockdown rolando.caloca
#rb rolando.caloca
#jira UE-69133
[CL 4824116 by Yuriy ODonnell in Dev-Rendering branch]
- Optimization flags handling in D3DCreateDXCArguments
- Switch over PipelineType in FD3D12StateCacheBase::ApplyState
- LocalCBVs access in SetRayTracingShaderResources
- Possible nullptr dereference in FD3D12DynamicRHI::RHICreateUniformBuffer
#rb Kevin.Ortegren
[CL 4675940 by Yuriy ODonnell in Dev-Rendering branch]