From cc615a8f325cce418292d3fc6b82291191bade75 Mon Sep 17 00:00:00 2001 From: galibzon <66021303+galibzon@users.noreply.github.com> Date: Fri, 11 Jun 2021 07:48:23 -0500 Subject: [PATCH] =?UTF-8?q?[ATOM-15472]=20Shader=20Build=20Pipeline:=20Rem?= =?UTF-8?q?ove=20Deprecated=20Files=20And=20Funct=E2=80=A6=20(#1079)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [ATOM-15472] Shader Build Pipeline: Remove Deprecated Files And Functions That Predate The Shader Supervariants These are the essential impactful changes as a result of deprecating the ShaderResourceGroupAsset. * Addressed feedback by @moudgils. Better comments in header files. * More updates related with deprecation of ShaderResourceGroupAsset * Deleted the temporary version 2 classes. * Updated version of the shader asset builders. * Updated version of all the shader related classes impacted by the Supervariant concept and deprecation of ShaderResourceGroupAsset * Changes to *.pass and DGI, Reflections and RayTracing. * changes to material related assets * changes to core lights * Changes to auxgeom/dynamic draw. * changes to decals, lyshine, imguipass * changes to RPI Pass classes * Shader for SceneSrg, ViewSrg and ForwardPass Srgs. * changes to mesh, skinned mesh, Morphtarget. * Fixes to RayTracingPass.cpp & now allow empty srg in shaders. * Updated Atom_RPI.Tests * Simplified InstanceDatabase by removing AddHandler ------------------------------------------------------------------------------------ * Updated DiffuseGI precompiled shaders. Added RayTracingSceneSrg and RayTracingMaterialSrg shader asset. Updated ShaderAssetCreator::Clone to handle the supervariant when processing root variants. Co-authored-by: Doug McDiarmid ------------------------------------------------------------------------------------ * Changed semantics for some PassSrg to SRG_PerPass_WithFallback. AuxGeom/FixedShapeProcessor.cpp requires SRG_PerDraw on ObjectSrg. Removed names of SceneSrg and ViewSrg from RPISystemDescriptor.cpp * Moved ShaderLib/Atom/Features/DummyEntryFunctions.azsli To Gems/Atom/RPI/Assets/ShaderLib/Atom/RPI/DummyEntryFunctions.azsli Removed redundant checking for finalization in ShaderResourceGroupLayout.cpp * Fixed race condition bug for Shader::FindOrCreate. InstanceDatabase<>::CreateInstance() needs to be atomic for instance creation and initialization. Added optional InstanceHandler::CreateFunctionWithParams to accomodate to the needs of Instances that need more than an asset reference to be able to be created an initialzed. Removed ShaderResourceGroup::FindOrCreate() only ::Create is available now. * Renamed scene_and_view_srgs.* as SceneAndViewSrgs.* Changed GetAzslFileOfOrigin for GetUniqueId * Fixed unit tests. * Reverted the serialization name of m_uniqueId back to "m_azslFileOfOrigin" so precompiled shaders don't fail in layout comparison. * Fixed AtomCore.Tests Removed non-applicable test. InstanceDatabase.AddHandler() is not available anymore. * The Null rhi is re-enabled for shader compilation. Signed-off-by: garrieta --- .../AtomCore/AtomCore/Instance/InstanceData.h | 2 +- .../AtomCore/Instance/InstanceDatabase.h | 239 +- .../AtomCore/Tests/InstanceDatabase.cpp | 327 +- .../Shader/Code/Source/Editor/AzslBuilder.cpp | 402 - .../Shader/Code/Source/Editor/AzslBuilder.h | 68 - .../Code/Source/Editor/AzslCompiler.cpp | 12 +- .../Shader/Code/Source/Editor/AzslCompiler.h | 3 +- .../AzslShaderBuilderSystemComponent.cpp | 79 +- .../Editor/AzslShaderBuilderSystemComponent.h | 8 - .../Editor/PrecompiledShaderBuilder.cpp | 39 +- .../Code/Source/Editor/ShaderAssetBuilder.cpp | 878 +- .../Code/Source/Editor/ShaderAssetBuilder.h | 2 +- .../Source/Editor/ShaderAssetBuilder2.cpp | 683 -- .../Code/Source/Editor/ShaderAssetBuilder2.h | 60 - .../Source/Editor/ShaderBuilderUtility.cpp | 395 +- .../Code/Source/Editor/ShaderBuilderUtility.h | 57 +- .../Editor/ShaderVariantAssetBuilder.cpp | 944 +- .../Source/Editor/ShaderVariantAssetBuilder.h | 44 +- .../Editor/ShaderVariantAssetBuilder2.cpp | 978 -- .../Editor/ShaderVariantAssetBuilder2.h | 107 - .../Code/Source/Editor/SrgLayoutBuilder.cpp | 541 - .../Code/Source/Editor/SrgLayoutBuilder.h | 83 - .../Code/Source/Editor/SrgLayoutUtility.cpp | 1 + .../Code/Source/Editor/SrgLayoutUtility.h | 2 +- .../atom_asset_shader_builders_files.cmake | 8 - .../Passes/EnvironmentCubeMapPipeline.pass | 4 +- .../Common/Assets/Passes/LowEndPipeline.pass | 4 +- .../Common/Assets/Passes/OpaqueParent.pass | 8 +- .../Common/Assets/Passes/Reflections.pass | 12 +- .../Assets/Passes/Reflections_nomsaa.pass | 12 +- .../Assets/Passes/TransparentParent.pass | 4 +- .../Features/RayTracing/RayTracingSrgs.azsl | 19 + .../Features/RayTracing/RayTracingSrgs.shader | 44 + ...seProbeGridBlendDistance.precompiledshader | 4 - ...ProbeGridBlendIrradiance.precompiledshader | 4 - ...beGridBorderUpdateColumn.precompiledshader | 4 - ...ProbeGridBorderUpdateRow.precompiledshader | 4 - ...eProbeGridClassification.precompiledshader | 4 - ...ffuseProbeGridRayTracing.precompiledshader | 4 - ...GridRayTracingClosestHit.precompiledshader | 4 - ...eProbeGridRayTracingMiss.precompiledshader | 4 - ...ffuseProbeGridRelocation.precompiledshader | 4 - .../DiffuseProbeGridRender.precompiledshader | 5 - .../diffuseprobegridblenddistance.azshader | Bin 41674 -> 90350 bytes ...begridblenddistance_dx12_0.azshadervariant | Bin 12166 -> 8186 bytes ...begridblenddistance_null_0.azshadervariant | Bin 4502 -> 486 bytes ...iffuseprobegridblenddistance_passsrg.azsrg | 8329 -------------- ...gridblenddistance_vulkan_0.azshadervariant | Bin 12234 -> 8218 bytes .../diffuseprobegridblendirradiance.azshader | Bin 41696 -> 90394 bytes ...gridblendirradiance_dx12_0.azshadervariant | Bin 12630 -> 8646 bytes ...gridblendirradiance_null_0.azshadervariant | Bin 4502 -> 486 bytes ...fuseprobegridblendirradiance_passsrg.azsrg | 8329 -------------- ...idblendirradiance_vulkan_0.azshadervariant | Bin 13410 -> 9394 bytes ...diffuseprobegridborderupdate_passsrg.azsrg | 1333 --- ...iffuseprobegridborderupdatecolumn.azshader | Bin 10253 -> 28300 bytes ...dborderupdatecolumn_dx12_0.azshadervariant | Bin 8498 -> 4522 bytes ...dborderupdatecolumn_null_0.azshadervariant | Bin 4502 -> 486 bytes ...orderupdatecolumn_vulkan_0.azshadervariant | Bin 6717 -> 2701 bytes .../diffuseprobegridborderupdaterow.azshader | Bin 10250 -> 28297 bytes ...gridborderupdaterow_dx12_0.azshadervariant | Bin 8314 -> 4338 bytes ...gridborderupdaterow_null_0.azshadervariant | Bin 4502 -> 486 bytes ...idborderupdaterow_vulkan_0.azshadervariant | Bin 6238 -> 2222 bytes .../diffuseprobegridclassification.azshader | Bin 40224 -> 87855 bytes ...egridclassification_dx12_0.azshadervariant | Bin 10106 -> 6122 bytes ...egridclassification_null_0.azshadervariant | Bin 4502 -> 486 bytes ...ffuseprobegridclassification_passsrg.azsrg | 8071 -------------- ...ridclassification_vulkan_0.azshadervariant | Bin 8914 -> 4898 bytes .../diffuseprobegridraytracing.azshader | Bin 79466 -> 160607 bytes ...probegridraytracing_dx12_0.azshadervariant | Bin 34738 -> 30714 bytes ...probegridraytracing_null_0.azshadervariant | Bin 4502 -> 486 bytes ...obegridraytracing_vulkan_0.azshadervariant | Bin 36332 -> 32316 bytes ...fuseprobegridraytracingclosesthit.azshader | Bin 79476 -> 160617 bytes ...aytracingclosesthit_dx12_0.azshadervariant | Bin 17150 -> 13126 bytes ...aytracingclosesthit_null_0.azshadervariant | Bin 4502 -> 486 bytes ...tracingclosesthit_vulkan_0.azshadervariant | Bin 9452 -> 5404 bytes ...raytracingcommon_raytracingglobalsrg.azsrg | 9925 ----------------- .../diffuseprobegridraytracingmiss.azshader | Bin 79470 -> 160611 bytes ...egridraytracingmiss_dx12_0.azshadervariant | Bin 17222 -> 13202 bytes ...egridraytracingmiss_null_0.azshadervariant | Bin 4502 -> 486 bytes ...ridraytracingmiss_vulkan_0.azshadervariant | Bin 10364 -> 6348 bytes .../diffuseprobegridrelocation.azshader | Bin 42190 -> 91763 bytes ...probegridrelocation_dx12_0.azshadervariant | Bin 12098 -> 8006 bytes ...probegridrelocation_null_0.azshadervariant | Bin 4502 -> 486 bytes .../diffuseprobegridrelocation_passsrg.azsrg | 8551 -------------- ...obegridrelocation_vulkan_0.azshadervariant | Bin 13314 -> 9298 bytes .../diffuseprobegridrender.azshader | Bin 116296 -> 231825 bytes ...fuseprobegridrender_dx12_0.azshadervariant | Bin 33592 -> 29467 bytes ...fuseprobegridrender_null_0.azshadervariant | Bin 4854 -> 589 bytes .../diffuseprobegridrender_objectsrg.azsrg | 9787 ---------------- .../diffuseprobegridrender_passsrg.azsrg | 1675 --- ...seprobegridrender_vulkan_0.azshadervariant | Bin 24478 -> 20213 bytes .../Common/Assets/Shaders/ForwardPassSrg.azsl | 18 + .../Assets/Shaders/ForwardPassSrg.shader | 39 + .../PostProcessing/DepthOfFieldBlurBokeh.azsl | 2 +- .../PostProcessing/DepthOfFieldComposite.azsl | 2 +- .../LookModificationTransform.azsl | 2 +- .../PostProcessing/OutputTransform.azsl | 2 +- .../SMAABlendingWeightCalculation.azsl | 2 +- .../PostProcessing/SMAAEdgeDetection.azsl | 2 +- .../SMAANeighborhoodBlending.azsl | 2 +- .../ReflectionProbeFeatureProcessor.h | 6 +- .../AuxGeom/DynamicPrimitiveProcessor.cpp | 10 +- .../AuxGeom/DynamicPrimitiveProcessor.h | 3 +- .../Source/AuxGeom/FixedShapeProcessor.cpp | 17 +- .../Code/Source/AuxGeom/FixedShapeProcessor.h | 4 +- .../CapsuleLightFeatureProcessor.cpp | 2 +- .../DirectionalLightFeatureProcessor.cpp | 4 +- .../CoreLights/DiskLightFeatureProcessor.cpp | 2 +- .../CoreLights/PointLightFeatureProcessor.cpp | 2 +- .../PolygonLightFeatureProcessor.cpp | 4 +- .../CoreLights/QuadLightFeatureProcessor.cpp | 2 +- .../SimplePointLightFeatureProcessor.cpp | 2 +- .../SimpleSpotLightFeatureProcessor.cpp | 2 +- .../Source/Decals/DecalFeatureProcessor.cpp | 4 +- .../DecalTextureArrayFeatureProcessor.cpp | 4 +- .../DiffuseProbeGrid.cpp | 35 +- .../DiffuseProbeGrid.h | 18 +- .../DiffuseProbeGridBlendDistancePass.cpp | 4 +- .../DiffuseProbeGridBlendDistancePass.h | 2 +- .../DiffuseProbeGridBlendIrradiancePass.cpp | 4 +- .../DiffuseProbeGridBlendIrradiancePass.h | 2 +- .../DiffuseProbeGridBorderUpdatePass.cpp | 10 +- .../DiffuseProbeGridBorderUpdatePass.h | 6 +- .../DiffuseProbeGridClassificationPass.cpp | 4 +- .../DiffuseProbeGridClassificationPass.h | 2 +- .../DiffuseProbeGridFeatureProcessor.cpp | 6 +- .../DiffuseProbeGridRayTracingPass.cpp | 7 +- .../DiffuseProbeGridRayTracingPass.h | 5 +- .../DiffuseProbeGridRelocationPass.cpp | 4 +- .../DiffuseProbeGridRelocationPass.h | 2 +- .../DiffuseProbeGridRenderPass.cpp | 6 +- .../DiffuseProbeGridRenderPass.h | 2 +- .../Common/Code/Source/ImGui/ImGuiPass.cpp | 13 +- .../Code/Source/Mesh/MeshFeatureProcessor.cpp | 9 +- .../MorphTargets/MorphTargetDispatchItem.cpp | 13 +- .../RayTracing/RayTracingFeatureProcessor.cpp | 25 +- .../RayTracing/RayTracingFeatureProcessor.h | 5 +- .../Code/Source/RayTracing/RayTracingPass.cpp | 15 +- .../ReflectionProbe/ReflectionProbe.cpp | 20 +- .../Source/ReflectionProbe/ReflectionProbe.h | 16 +- .../ReflectionProbeFeatureProcessor.cpp | 32 +- .../ProjectedShadowFeatureProcessor.cpp | 2 +- .../SkinnedMesh/SkinnedMeshDispatchItem.cpp | 13 +- .../RHI.Reflect/ShaderResourceGroupLayout.h | 14 + .../RHI.Reflect/ShaderResourceGroupLayout.cpp | 7 +- Gems/Atom/RPI/Assets/Shader/ImagePreview.azsl | 2 +- .../RPI/Assets/Shader/SceneAndViewSrgs.azsl | 19 + .../RPI/Assets/Shader/SceneAndViewSrgs.shader | 39 + .../Atom/RPI/DummyEntryFunctions.azsli | 55 + .../Include/Atom/RPI.Edit/Common/AssetUtils.h | 3 - .../Atom/RPI.Edit/Shader/ShaderSourceData.h | 1 - .../Shader/ShaderVariantAssetCreator.h | 21 +- .../Shader/ShaderVariantAssetCreator2.h | 54 - .../Shader/ShaderVariantListSourceData.h | 1 - .../DynamicDraw/DynamicDrawContext.h | 2 +- .../Code/Include/Atom/RPI.Public/RPISystem.h | 12 +- .../Atom/RPI.Public/RPISystemInterface.h | 8 +- .../Include/Atom/RPI.Public/RenderPipeline.h | 1 - .../Include/Atom/RPI.Public/Shader/Shader.h | 51 +- .../Include/Atom/RPI.Public/Shader/Shader2.h | 194 - .../Shader/ShaderReloadNotificationBus.h | 3 +- .../Shader/ShaderReloadNotificationBus2.h | 58 - .../RPI.Public/Shader/ShaderResourceGroup.h | 58 +- .../Shader/ShaderResourceGroupPool.h | 14 +- .../Atom/RPI.Public/Shader/ShaderVariant.h | 16 +- .../Atom/RPI.Public/Shader/ShaderVariant2.h | 71 - .../Shader/ShaderVariantAsyncLoader.h | 37 +- .../Atom/RPI.Reflect/Material/MaterialAsset.h | 32 +- .../RPI.Reflect/Material/MaterialTypeAsset.h | 52 +- .../Material/MaterialTypeAssetCreator.h | 19 +- .../Atom/RPI.Reflect/Pass/RasterPassData.h | 8 +- .../Atom/RPI.Reflect/RPISystemDescriptor.h | 9 +- .../RPI.Reflect/Shader/IShaderVariantFinder.h | 16 +- .../Shader/IShaderVariantFinder2.h | 113 - .../Shader/PrecompiledShaderAssetSourceData.h | 1 - .../Atom/RPI.Reflect/Shader/ShaderAsset.h | 254 +- .../Atom/RPI.Reflect/Shader/ShaderAsset2.h | 339 - .../RPI.Reflect/Shader/ShaderAssetCreator.h | 46 +- .../RPI.Reflect/Shader/ShaderAssetCreator2.h | 97 - .../RPI.Reflect/Shader/ShaderCommonTypes.h | 11 +- .../Shader/ShaderResourceGroupAsset.h | 105 - .../Shader/ShaderResourceGroupAssetCreator.h | 71 - .../RPI.Reflect/Shader/ShaderVariantAsset.h | 35 +- .../RPI.Reflect/Shader/ShaderVariantAsset2.h | 104 - .../Atom/RPI.Reflect/System/SceneDescriptor.h | 1 - .../Source/RPI.Builders/BuilderComponent.cpp | 6 - .../RPI.Builders/Material/MaterialBuilder.cpp | 1 - .../Source/RPI.Builders/Pass/PassBuilder.cpp | 19 +- .../Source/RPI.Edit/Common/AssetUtils.cpp | 6 - .../Material/MaterialTypeSourceData.cpp | 2 +- .../Shader/ShaderVariantAssetCreator.cpp | 73 +- .../Shader/ShaderVariantAssetCreator2.cpp | 112 - .../DynamicDraw/DynamicDrawContext.cpp | 20 +- .../Source/RPI.Public/Image/ImageSystem.cpp | 9 +- .../Source/RPI.Public/Material/Material.cpp | 10 +- .../Code/Source/RPI.Public/MeshDrawPacket.cpp | 13 +- .../RPI.Public/Pass/AttachmentReadback.cpp | 6 +- .../Source/RPI.Public/Pass/ComputePass.cpp | 12 +- .../Pass/FullscreenTrianglePass.cpp | 12 +- .../Source/RPI.Public/Pass/RasterPass.cpp | 31 +- .../Specific/ImageAttachmentPreviewPass.cpp | 7 +- .../RPI/Code/Source/RPI.Public/RPISystem.cpp | 36 +- .../Atom/RPI/Code/Source/RPI.Public/Scene.cpp | 8 +- .../Code/Source/RPI.Public/Shader/Shader.cpp | 77 +- .../Code/Source/RPI.Public/Shader/Shader2.cpp | 413 - .../RPI.Public/Shader/ShaderResourceGroup.cpp | 97 +- .../Shader/ShaderResourceGroupPool.cpp | 37 +- .../Source/RPI.Public/Shader/ShaderSystem.cpp | 35 +- .../RPI.Public/Shader/ShaderVariant.cpp | 18 +- .../RPI.Public/Shader/ShaderVariant2.cpp | 76 - .../Shader/ShaderVariantAsyncLoader.cpp | 58 +- Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp | 6 +- .../RPI.Reflect/Material/MaterialAsset.cpp | 28 +- .../Material/MaterialTypeAsset.cpp | 81 +- .../Material/MaterialTypeAssetCreator.cpp | 49 +- .../RPI.Reflect/RPISystemDescriptor.cpp | 9 +- .../PrecompiledShaderAssetSourceData.cpp | 3 +- .../Source/RPI.Reflect/Shader/ShaderAsset.cpp | 312 +- .../RPI.Reflect/Shader/ShaderAsset2.cpp | 589 - .../RPI.Reflect/Shader/ShaderAssetCreator.cpp | 336 +- .../Shader/ShaderAssetCreator2.cpp | 404 - .../Shader/ShaderResourceGroupAsset.cpp | 126 - .../ShaderResourceGroupAssetCreator.cpp | 169 - .../RPI.Reflect/Shader/ShaderVariantAsset.cpp | 35 +- .../Shader/ShaderVariantAsset2.cpp | 114 - .../RPI/Code/Tests/Common/RPITestFixture.cpp | 5 +- .../RPI/Code/Tests/Common/RPITestFixture.h | 3 +- .../Tests/Common/ShaderAssetTestUtils.cpp | 148 + .../Code/Tests/Common/ShaderAssetTestUtils.h | 28 + .../Code/Tests/Image/StreamingImageTests.cpp | 47 +- .../Material/LuaMaterialFunctorTests.cpp | 77 +- .../Tests/Material/MaterialAssetTestUtils.cpp | 140 +- .../Tests/Material/MaterialAssetTestUtils.h | 9 +- .../Tests/Material/MaterialAssetTests.cpp | 6 +- .../Tests/Material/MaterialFunctorTests.cpp | 3 +- .../Material/MaterialSourceDataTests.cpp | 10 +- .../RPI/Code/Tests/Material/MaterialTests.cpp | 53 +- .../Tests/Material/MaterialTypeAssetTests.cpp | 48 +- .../Material/MaterialTypeSourceDataTests.cpp | 65 +- .../RPI/Code/Tests/Shader/ShaderTests.cpp | 127 +- .../ShaderResourceGroupAssetTests.cpp | 143 - .../ShaderResourceGroupBufferTests.cpp | 42 +- ...ShaderResourceGroupConstantBufferTests.cpp | 73 +- .../ShaderResourceGroupGeneralTests.cpp | 70 +- .../ShaderResourceGroupImageTests.cpp | 42 +- Gems/Atom/RPI/Code/atom_rpi_edit_files.cmake | 2 - .../Atom/RPI/Code/atom_rpi_public_files.cmake | 5 - .../RPI/Code/atom_rpi_reflect_files.cmake | 11 - Gems/Atom/RPI/Code/atom_rpi_tests_files.cmake | 3 +- ...ssetCollectionAsyncLoaderTestComponent.cpp | 11 - Gems/LyShine/Code/Source/Draw2d.cpp | 2 +- Gems/LyShine/Code/Source/UiRenderer.cpp | 2 +- Registry/AssetProcessorPlatformConfig.setreg | 8 +- 253 files changed, 3389 insertions(+), 65834 deletions(-) delete mode 100644 Gems/Atom/Asset/Shader/Code/Source/Editor/AzslBuilder.cpp delete mode 100644 Gems/Atom/Asset/Shader/Code/Source/Editor/AzslBuilder.h delete mode 100644 Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.cpp delete mode 100644 Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.h delete mode 100644 Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.cpp delete mode 100644 Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.h delete mode 100644 Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutBuilder.cpp delete mode 100644 Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutBuilder.h create mode 100644 Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSrgs.azsl create mode 100644 Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSrgs.shader delete mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_passsrg.azsrg delete mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblendirradiance_passsrg.azsrg delete mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdate_passsrg.azsrg delete mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridclassification_passsrg.azsrg delete mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingcommon_raytracingglobalsrg.azsrg delete mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrelocation_passsrg.azsrg delete mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_objectsrg.azsrg delete mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_passsrg.azsrg create mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/ForwardPassSrg.azsl create mode 100644 Gems/Atom/Feature/Common/Assets/Shaders/ForwardPassSrg.shader create mode 100644 Gems/Atom/RPI/Assets/Shader/SceneAndViewSrgs.azsl create mode 100644 Gems/Atom/RPI/Assets/Shader/SceneAndViewSrgs.shader create mode 100644 Gems/Atom/RPI/Assets/ShaderLib/Atom/RPI/DummyEntryFunctions.azsli delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator2.h delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/Shader2.h delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus2.h delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariant2.h delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder2.h delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAsset2.h delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator2.h delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAsset.h delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.h delete mode 100644 Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset2.h delete mode 100644 Gems/Atom/RPI/Code/Source/RPI.Edit/Shader/ShaderVariantAssetCreator2.cpp delete mode 100644 Gems/Atom/RPI/Code/Source/RPI.Public/Shader/Shader2.cpp delete mode 100644 Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariant2.cpp delete mode 100644 Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAsset2.cpp delete mode 100644 Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAssetCreator2.cpp delete mode 100644 Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderResourceGroupAsset.cpp delete mode 100644 Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.cpp delete mode 100644 Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderVariantAsset2.cpp create mode 100644 Gems/Atom/RPI/Code/Tests/Common/ShaderAssetTestUtils.cpp create mode 100644 Gems/Atom/RPI/Code/Tests/Common/ShaderAssetTestUtils.h delete mode 100644 Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupAssetTests.cpp diff --git a/Code/Framework/AtomCore/AtomCore/Instance/InstanceData.h b/Code/Framework/AtomCore/AtomCore/Instance/InstanceData.h index 119ecf3df2..d07a3a5d94 100644 --- a/Code/Framework/AtomCore/AtomCore/Instance/InstanceData.h +++ b/Code/Framework/AtomCore/AtomCore/Instance/InstanceData.h @@ -76,7 +76,7 @@ namespace AZ template friend struct AZStd::IntrusivePtrCountPolicy; - template + template friend class InstanceDatabase; // Pointer to the InstanceDatabase that owns this instance. Will be null if the InstanceData object diff --git a/Code/Framework/AtomCore/AtomCore/Instance/InstanceDatabase.h b/Code/Framework/AtomCore/AtomCore/Instance/InstanceDatabase.h index 0a9320e196..70f3e82d3e 100644 --- a/Code/Framework/AtomCore/AtomCore/Instance/InstanceDatabase.h +++ b/Code/Framework/AtomCore/AtomCore/Instance/InstanceDatabase.h @@ -46,14 +46,22 @@ namespace AZ */ using CreateFunction = AZStd::function(AssetData*)>; + using CreateFunctionWithParam = AZStd::function(AssetData*, const AZStd::any* param)>; + /** * Deletion takes an asset as input and transfers ownership to the method. */ using DeleteFunction = AZStd::function; - /// [Required] The function to use when creating an instance. - /// The system will assert if no creation function is provided. - CreateFunction m_createFunction; + /// A function to use when creating an instance. + /// The system will assert if both @m_createFunction and @m_createFunctionWithParam + /// creation functions are invalid. + CreateFunction m_createFunction = nullptr; + + /// A function with an additional custom param to use when creating an instance. + /// The system will assert if both @m_createFunction and @m_createFunctionWithParam + /// creation functions are invalid. + CreateFunctionWithParam m_createFunctionWithParam = nullptr; /// [Optional] The function to use when deleting an instance. DeleteFunction m_deleteFunction = [](Type* t) { delete t; }; @@ -156,28 +164,14 @@ namespace AZ * Use this function when creating an InstanceDatabase that will handle concrete classes of @ref Type. * \param assetType - All instances will be based on subclasses of this asset type. * \param handler - An InstanceHandler that creates instances of @ref assetType assets. + * \param checkAssetIds - If true, it will be validated that "instance->m_assetId == asset.GetId()" */ - static void Create(const AssetType& assetType, const InstanceHandler& handler); - - /** - * Create the InstanceDatabase with no handlers. Individual handlers must be added using @ref AddHandler(). - * Use this function when creating an InstanceDatabase that will handle subclasses of @ref Type. - * \param assetType - All instances will be based on subclasses of this asset type. - */ - static void Create(const AssetType& assetType); + static void Create(const AssetType& assetType, const InstanceHandler& handler, bool checkAssetIds = true); static void Destroy(); static bool IsReady(); static InstanceDatabase& Instance(); - /** - * Add an InstanceHandler that will create instances for assets of type @ref assetType. - */ - void AddHandler(const AssetType& assetType, const InstanceHandler& handler); - void AddHandler(const AssetType& assetType, typename InstanceHandler::CreateFunction createFunction); - - void RemoveHandler(const AssetType& assetType); - /** * Attempts to find an instance associated with the provided id. If the instance exists, it * is returned. If no instance is found, nullptr is returned. If is safe to call this from @@ -205,18 +199,20 @@ namespace AZ * when acquiring an instance. * @return Returns a smart pointer to the instance, which was either found or created. */ - Data::Instance FindOrCreate(const InstanceId& id, const Asset& asset); + Data::Instance FindOrCreate(const InstanceId& id, const Asset& asset, const AZStd::any* param = nullptr); //! Calls the above FindOrCreate using an InstanceId created from the asset - Data::Instance FindOrCreate(const Asset& asset); + Data::Instance FindOrCreate(const Asset& asset, const AZStd::any* param = nullptr); //! Calls FindOrCreate using a random InstanceId - Data::Instance Create(const Asset& asset); + Data::Instance Create(const Asset& asset, const AZStd::any* param = nullptr); private: InstanceDatabase(const AssetType& assetType); ~InstanceDatabase(); + bool m_checkAssetIds = true; + //useAssetTypeAsKeyForHandlers; static const char* GetEnvironmentName(); // Utility function called by InstanceData to remove the instance from the database. @@ -224,11 +220,7 @@ namespace AZ void ValidateSameAsset(InstanceData* instance, const Data::Asset& asset) const; - // Performs a thread-safe search for the InstanceHandler for a given asset type. - bool FindHandler(const AssetType& assetType, InstanceHandler& handlerOut); - - mutable AZStd::shared_mutex m_handlersMutex; - AZStd::unordered_map> m_handlers; + InstanceHandler m_instanceHandler; // m_database uses a recursive_mutex instead of a shared_mutex because it's possible to recursively // create or destroy instances on the same thread while in the midst of creating or destroying an instance. @@ -241,10 +233,11 @@ namespace AZ static EnvironmentVariable ms_instance; }; - template - EnvironmentVariable*> InstanceDatabase::ms_instance = nullptr; + template + EnvironmentVariable*> + InstanceDatabase::ms_instance = nullptr; - template + template InstanceDatabase::~InstanceDatabase() { #ifdef AZ_DEBUG_BUILD @@ -261,52 +254,7 @@ namespace AZ "AZ::Data::%s still has active references.", Type::GetDatabaseName()); } - template - void InstanceDatabase::AddHandler(const AssetType& assetType, const InstanceHandler& handler) - { - AZ_Assert(handler.m_createFunction, "You are required to provide a create function to InstanceDatabase."); - - AZStd::unique_lock lock(m_handlersMutex); - auto result = m_handlers.emplace(assetType, handler); - AZ_Assert(result.second, "An InstanceHandler already exists for this AssetType"); - } - - template - void InstanceDatabase::AddHandler(const AssetType& assetType, typename InstanceHandler::CreateFunction createFunction) - { - InstanceHandler instanceHandler; - instanceHandler.m_createFunction = createFunction; - - AddHandler(assetType, instanceHandler); - } - - template - void InstanceDatabase::RemoveHandler(const AssetType& assetType) - { - AZStd::unique_lock lock(m_handlersMutex); - m_handlers.erase(assetType); - } - - template - bool InstanceDatabase::FindHandler(const AssetType& assetType, InstanceHandler& handlerOut) - { - AZStd::shared_lock lock(m_handlersMutex); - - auto handlerIter = m_handlers.find(assetType); - if (handlerIter != m_handlers.end()) - { - // Since the handler is just a couple pointers, we copy the handler so we can - // release the lock right away. - handlerOut = handlerIter->second; - return true; - } - else - { - return false; - } - } - - template + template Data::Instance InstanceDatabase::Find(const InstanceId& id) const { AZStd::scoped_lock lock(m_databaseMutex); @@ -318,8 +266,9 @@ namespace AZ return nullptr; } - template - Data::Instance InstanceDatabase::FindOrCreate(const InstanceId& id, const Asset& asset) + template + Data::Instance InstanceDatabase::FindOrCreate( + const InstanceId& id, const Asset& asset, const AZStd::any* param) { if (!id.IsValid()) { @@ -358,24 +307,6 @@ namespace AZ } } - if (!azrtti_istypeof(m_baseAssetType, assetLocal.Get())) - { - InstanceHandler instanceHandler; - - // If a handler was incorrectly registered for an unrelated asset type, this is the - // first chance we have to discover that fact, because up until now all we had was two - // TypeIds. - if (FindHandler(assetLocal.GetType(), instanceHandler)) - { - AZ_Assert(false, "An InstanceHandler was added for asset type %s which is not a subclass of the base asset type %s.", - assetLocal.GetType().ToString().data(), - m_baseAssetType.ToString().data() - ); - - return nullptr; - } - } - // Take a lock to guard the insertion. Note that this will not guard against recursive insertions on the same thread. AZStd::scoped_lock lock(m_databaseMutex); @@ -390,48 +321,46 @@ namespace AZ } // Emplace a new instance and return it. - InstanceHandler instanceHandler; - if (FindHandler(assetLocal.GetType(), instanceHandler)) + // It's possible for the m_createFunction call to recursively trigger another FindOrCreate call, so be aware that + // the contents of m_database may change within this call. + Data::Instance instance = nullptr; + if (!param) { - // It's possible for the m_createFunction call to recursively trigger another FindOrCreate call, so be aware that - // the contents of m_database may change within this call. - Data::Instance instance = instanceHandler.m_createFunction(assetLocal.Get()); - if (instance) - { - AZ_Assert(m_database.find(id) == m_database.end(), - "Instance creation for asset id %s resulted in a recursive creation of that asset, which was unexpected. " - "This asset might be erroneously referencing itself as a dependent asset.", id.ToString().c_str()); - - instance->m_id = id; - instance->m_parentDatabase = this; - instance->m_assetId = assetLocal.GetId(); - instance->m_assetType = assetLocal.GetType(); - m_database.emplace(id, instance.get()); - } - return AZStd::move(instance); + instance = m_instanceHandler.m_createFunction(assetLocal.Get()); } else { - AZ_Warning( - "InstanceDatabase", false, - "No InstanceHandler found for asset type %s", assetLocal.GetType().ToString().data()); - return nullptr; + instance = m_instanceHandler.m_createFunctionWithParam(assetLocal.Get(), param); } + + if (instance) + { + AZ_Assert(m_database.find(id) == m_database.end(), + "Instance creation for asset id %s resulted in a recursive creation of that asset, which was unexpected. " + "This asset might be erroneously referencing itself as a dependent asset.", id.ToString().c_str()); + + instance->m_id = id; + instance->m_parentDatabase = this; + instance->m_assetId = assetLocal.GetId(); + instance->m_assetType = assetLocal.GetType(); + m_database.emplace(id, instance.get()); + } + return AZStd::move(instance); } - template - Data::Instance InstanceDatabase::FindOrCreate(const Asset& asset) + template + Data::Instance InstanceDatabase::FindOrCreate(const Asset& asset, const AZStd::any* param) { - return FindOrCreate(Data::InstanceId::CreateFromAssetId(asset.GetId()), asset); + return FindOrCreate(Data::InstanceId::CreateFromAssetId(asset.GetId()), asset, param); } - template - Data::Instance InstanceDatabase::Create(const Asset& asset) + template + Data::Instance InstanceDatabase::Create(const Asset& asset, const AZStd::any* param) { - return FindOrCreate(Data::InstanceId::CreateRandom(), asset); + return FindOrCreate(Data::InstanceId::CreateRandom(), asset, param); } - template + template void InstanceDatabase::ReleaseInstance(InstanceData* instance, const InstanceId& instanceId) { AZStd::scoped_lock lock(m_databaseMutex); @@ -447,22 +376,13 @@ namespace AZ instance->m_useCount.compare_exchange_strong(expectedRefCount, -1)) { m_database.erase(instance->GetId()); - - InstanceHandler instanceHandler; - if (FindHandler(instance->GetAssetType(), instanceHandler)) - { - instanceHandler.m_deleteFunction(static_cast(instance)); - } - else - { - AZ_Assert(false, - "Cannot delete Instance. No InstanceHandler found for asset type %s", instance->GetAssetType().ToString().data()); - } + m_instanceHandler.m_deleteFunction(static_cast(instance)); } } - template - void InstanceDatabase::ValidateSameAsset(InstanceData* instance, const Data::Asset& asset) const + template + void InstanceDatabase::ValidateSameAsset( + InstanceData* instance, const Data::Asset& asset) const { /** * The following validation layer is disabled in release, but is designed to catch a couple related edge cases @@ -476,46 +396,47 @@ namespace AZ */ #if defined (AZ_DEBUG_BUILD) - AZ_Error("InstanceDatabase", instance->m_assetId == asset.GetId(), - "InstanceDatabase::FindOrCreate found the requested instance, but a different asset was used to create it. " - "Instances of a specific id should be acquired using the same asset. Either make sure the instance id " - "is actually unique, or that you are using the same asset each time for that particular id."); + if (m_checkAssetIds) + { + AZ_Error( + "InstanceDatabase", (instance->m_assetId == asset.GetId()), + "InstanceDatabase::FindOrCreate found the requested instance, but a different asset was used to create it. " + "Instances of a specific id should be acquired using the same asset. Either make sure the instance id " + "is actually unique, or that you are using the same asset each time for that particular id."); + } #else AZ_UNUSED(instance); AZ_UNUSED(asset); #endif } - template + template InstanceDatabase::InstanceDatabase(const AssetType& assetType) : m_baseAssetType(assetType) { } - template - void InstanceDatabase::Create(const AssetType& assetType) + template + void InstanceDatabase::Create(const AssetType& assetType, const InstanceHandler& handler, bool checkAssetIds) { AZ_Assert(!ms_instance || !ms_instance.Get(), "InstanceDatabase already created!"); if (!ms_instance) { - ms_instance = Environment::CreateVariable(GetEnvironmentName()); + ms_instance = Environment::CreateVariable*>(GetEnvironmentName()); } if (!ms_instance.Get()) { ms_instance.Set(aznew InstanceDatabase(assetType)); } + + AZ_Assert(handler.m_createFunction || handler.m_createFunctionWithParam, "At least one create function must be valid"); + ms_instance.Get()->m_instanceHandler = handler; + ms_instance.Get()->m_checkAssetIds = checkAssetIds; } - template - void InstanceDatabase::Create(const AssetType& assetType, const InstanceHandler& handler) - { - Create(assetType); - Instance().AddHandler(assetType, handler); - } - - template + template void InstanceDatabase::Destroy() { AZ_Assert(ms_instance, "InstanceDatabase not created!"); @@ -523,7 +444,7 @@ namespace AZ *ms_instance = nullptr; } - template + template bool InstanceDatabase::IsReady() { if (!ms_instance) @@ -534,7 +455,7 @@ namespace AZ return ms_instance && *ms_instance; } - template + template InstanceDatabase& InstanceDatabase::Instance() { if (!ms_instance) @@ -546,10 +467,12 @@ namespace AZ return *(*ms_instance); } - template + template const char* InstanceDatabase::GetEnvironmentName() { - static_assert(HasInstanceDatabaseName::value, "All classes used as instances in an InstanceDatabase need to define AZ_INSTANCE_DATA in the class."); + static_assert( + HasInstanceDatabaseName::value, + "All classes used as instances in an InstanceDatabase need to define AZ_INSTANCE_DATA in the class."); return Type::GetDatabaseName(); } } diff --git a/Code/Framework/AtomCore/Tests/InstanceDatabase.cpp b/Code/Framework/AtomCore/Tests/InstanceDatabase.cpp index 833940a68e..daed818435 100644 --- a/Code/Framework/AtomCore/Tests/InstanceDatabase.cpp +++ b/Code/Framework/AtomCore/Tests/InstanceDatabase.cpp @@ -34,8 +34,7 @@ namespace UnitTest static const AssetId s_assetId3{ Uuid("{D9CDAB04-D206-431E-BDC0-1DD615D56197}") }; // test asset type - class TestAssetType - : public AssetData + class TestAssetType : public AssetData { public: AZ_CLASS_ALLOCATOR(TestAssetType, AZ::SystemAllocator, 0); @@ -47,30 +46,30 @@ namespace UnitTest } }; - class TestInstanceA - : public InstanceData + class TestInstanceA : public InstanceData { public: AZ_INSTANCE_DATA(TestInstanceA, "{65CBF1C8-F65F-4A84-8A11-B510BC435DB0}"); AZ_CLASS_ALLOCATOR(TestInstanceA, AZ::SystemAllocator, 0); TestInstanceA(TestAssetType* asset) - : m_asset{asset, AZ::Data::AssetLoadBehavior::Default} - {} + : m_asset{ asset, AZ::Data::AssetLoadBehavior::Default } + { + } Asset m_asset; }; - class TestInstanceB - : public InstanceData + class TestInstanceB : public InstanceData { public: AZ_INSTANCE_DATA(TestInstanceB, "{4ED0A8BF-7800-44B2-AC73-2CB759C61C37}"); AZ_CLASS_ALLOCATOR(TestInstanceB, AZ::SystemAllocator, 0); TestInstanceB(TestAssetType* asset) - : m_asset{asset, AZ::Data::AssetLoadBehavior::Default } - {} + : m_asset{ asset, AZ::Data::AssetLoadBehavior::Default } + { + } ~TestInstanceB() { @@ -86,8 +85,7 @@ namespace UnitTest // test asset handler template - class MyAssetHandler - : public AssetHandler + class MyAssetHandler : public AssetHandler { public: AZ_CLASS_ALLOCATOR(MyAssetHandler, AZ::SystemAllocator, 0); @@ -120,13 +118,12 @@ namespace UnitTest } }; - class InstanceDatabaseTest - : public AllocatorsFixture + class InstanceDatabaseTest : public AllocatorsFixture { protected: MyAssetHandler* m_assetHandler; - public: + public: void SetUp() override { AllocatorsFixture::SetUp(); @@ -200,7 +197,7 @@ namespace UnitTest AZStd::vector guids; AZStd::vector> assets; - + for (size_t i = 0; i < assetIdCount; ++i) { Uuid guid = Uuid::CreateRandom(); @@ -211,7 +208,6 @@ namespace UnitTest assets.emplace_back(assetManager.CreateAsset(guid, AZ::Data::AssetLoadBehavior::Default)); } - AZStd::vector threads; AZStd::mutex mutex; AZStd::atomic threadCount((int)threadCountMax); @@ -232,27 +228,29 @@ namespace UnitTest for (size_t i = 0; i < threadCountMax; ++i) { - threads.emplace_back([&instanceManager, &threadCount, &cv, &guids, &assets, &durationSeconds]() - { - AZ::Debug::Timer timer; - timer.Stamp(); - - while(timer.GetDeltaTimeInSeconds() < durationSeconds) + threads.emplace_back( + [&instanceManager, &threadCount, &cv, &guids, &assets, &durationSeconds]() { - const size_t index = rand() % guids.size(); - const Uuid uuid = guids[index]; - const InstanceId instanceId{uuid}; - const AssetId assetId{uuid}; + AZ::Debug::Timer timer; + timer.Stamp(); - Instance instance = instanceManager.FindOrCreate(instanceId, Asset(assetId, azrtti_typeid())); - EXPECT_NE(instance, nullptr); - EXPECT_EQ(instance->GetId(), instanceId); - EXPECT_EQ(instance->m_asset, assets[index]); - } + while (timer.GetDeltaTimeInSeconds() < durationSeconds) + { + const size_t index = rand() % guids.size(); + const Uuid uuid = guids[index]; + const InstanceId instanceId{ uuid }; + const AssetId assetId{ uuid }; - threadCount--; - cv.notify_one(); - }); + Instance instance = + instanceManager.FindOrCreate(instanceId, Asset(assetId, azrtti_typeid())); + EXPECT_NE(instance, nullptr); + EXPECT_EQ(instance->GetId(), instanceId); + EXPECT_EQ(instance->m_asset, assets[index]); + } + + threadCount--; + cv.notify_one(); + }); } bool timedOut = false; @@ -261,7 +259,9 @@ namespace UnitTest while (threadCount > 0 && !timedOut) { AZStd::unique_lock lock(mutex); - timedOut = (AZStd::cv_status::timeout == cv.wait_until(lock, AZStd::chrono::system_clock::now() + AZStd::chrono::seconds(durationSeconds * 2))); + timedOut = + (AZStd::cv_status::timeout == + cv.wait_until(lock, AZStd::chrono::system_clock::now() + AZStd::chrono::seconds(durationSeconds * 2))); } EXPECT_TRUE(threadCount == 0) << "One or more threads appear to be deadlocked at " << timer.GetDeltaTimeInSeconds() << " seconds"; @@ -280,8 +280,8 @@ namespace UnitTest TEST_F(InstanceDatabaseTest, ParallelInstanceCreate) { // This is the original test scenario from when InstanceDatabase was first implemented - // threads, AssetIds, seconds - ParallelInstanceCreateHelper( 8, 100, 5 ); + // threads, AssetIds, seconds + ParallelInstanceCreateHelper(8, 100, 5); // This value is checked in as 1 so this test doesn't take too much time, but can be increased locally to soak the test. const size_t attempts = 1; @@ -291,10 +291,10 @@ namespace UnitTest printf("Attempt %zu of %zu... \n", i, attempts); // The idea behind this series of tests is that there are two threads sharing one Instance, and both threads try to - // create or release that instance at the same time. + // create or release that instance at the same time. // At the time, this set of scenarios has something like a 10% failure rate. const size_t duration = 2; - // threads, AssetIds, seconds + // threads, AssetIds, seconds ParallelInstanceCreateHelper(2, 1, duration); ParallelInstanceCreateHelper(4, 1, duration); ParallelInstanceCreateHelper(8, 1, duration); @@ -306,7 +306,7 @@ namespace UnitTest // Here we try a bunch of different threadCount:assetCount ratios to be thorough const size_t duration = 2; - // threads, AssetIds, seconds + // threads, AssetIds, seconds ParallelInstanceCreateHelper(2, 1, duration); ParallelInstanceCreateHelper(4, 1, duration); ParallelInstanceCreateHelper(4, 2, duration); @@ -328,7 +328,10 @@ namespace UnitTest // Tests whether the deleter actually calls delete properly without // a parent database. - instance->m_onDeleteCallback = [this, &m_deleted] () { m_deleted = true; }; + instance->m_onDeleteCallback = [this, &m_deleted]() + { + m_deleted = true; + }; } EXPECT_TRUE(m_deleted); @@ -386,242 +389,4 @@ namespace UnitTest InstanceDatabase::Destroy(); } - - class InstanceDatabaseTestWithMultipleSubclasses - : public AllocatorsFixture - { - protected: - // We have "BaseAsset" with subclasses "FooAsset" and "BarAsset", - // and corresponding "BaseInstance" with subclasses "FooInstance" and "BarInstance". - // There is one "InstanceDatabse" that can create instances of both subtypes. - - class BaseAsset - : public AssetData - { - public: - AZ_CLASS_ALLOCATOR(BaseAsset, AZ::SystemAllocator, 0); - AZ_RTTI(FooAsset, "{35B443A6-D8ED-4C3C-A3F0-D642251F0AA5}", AssetData); - - BaseAsset() - { - m_status = AssetStatus::Ready; - } - }; - - class BaseInstance - : public InstanceData - { - public: - AZ_INSTANCE_DATA(BaseInstance, "{EFEC3406-2CB7-462E-A676-C22177E143E6}"); - AZ_CLASS_ALLOCATOR(BaseInstance, AZ::SystemAllocator, 0); - - BaseInstance(BaseAsset* asset) - : m_asset{ asset, AZ::Data::AssetLoadBehavior::Default } - {} - - Asset m_asset; - }; - - class FooAsset - : public BaseAsset - { - public: - AZ_CLASS_ALLOCATOR(FooAsset, AZ::SystemAllocator, 0); - AZ_RTTI(FooAsset, "{74BAE278-3DCA-4ADD-807E-2A6873F9EA3C}", BaseAsset); - }; - - class BarAsset - : public BaseAsset - { - public: - AZ_CLASS_ALLOCATOR(BarAsset, AZ::SystemAllocator, 0); - AZ_RTTI(FooAsset, "{2BCD66F5-768B-4569-9FC2-DE92ABC9C0BF}", BaseAsset); - }; - - class FooInstance - : public BaseInstance - { - public: - AZ_RTTI(FooInstance, "{B5487509-5518-4591-AC96-03E623A584B7}", BaseInstance); - AZ_CLASS_ALLOCATOR(FooInstance, AZ::SystemAllocator, 0); - - FooInstance(BaseAsset* asset) - : BaseInstance(asset) - { - EXPECT_TRUE(azrtti_typeid() == asset->GetType()); - } - }; - - class BarInstance - : public BaseInstance - { - public: - AZ_RTTI(BarInstance, "{CE9C844A-625D-4899-B7DB-8127D4618D25}", BaseInstance); - AZ_CLASS_ALLOCATOR(BarInstance, AZ::SystemAllocator, 0); - - BarInstance(BaseAsset* asset) - : BaseInstance(asset) - { - EXPECT_TRUE(azrtti_typeid() == asset->GetType()); - } - }; - - MyAssetHandler m_fooAssetHandler; - MyAssetHandler m_barAssetHandler; - - public: - - void SetUp() override - { - AllocatorsFixture::SetUp(); - AllocatorInstance::Create(); - AllocatorInstance::Create(); - - // create the asset database - { - AssetManager::Descriptor desc; - AssetManager::Create(desc); - } - - // create the instance database - { - InstanceDatabase::Create(azrtti_typeid()); - - InstanceHandler fooHandler; - fooHandler.m_createFunction = [](AssetData* assetData) - { - EXPECT_TRUE(azrtti_istypeof(assetData)); - return aznew FooInstance(static_cast(assetData)); - }; - InstanceDatabase::Instance().AddHandler(azrtti_typeid(), fooHandler); - - // Using a different overload of AddHandler() - InstanceDatabase::Instance().AddHandler(azrtti_typeid(), [](AssetData* assetData) - { - EXPECT_TRUE(azrtti_istypeof(assetData)); - return aznew BarInstance(static_cast(assetData)); - }); - } - - AssetManager::Instance().RegisterHandler(&m_fooAssetHandler, AzTypeInfo::Uuid()); - AssetManager::Instance().RegisterHandler(&m_barAssetHandler, AzTypeInfo::Uuid()); - } - - void TearDown() override - { - AssetManager::Instance().UnregisterHandler(&m_fooAssetHandler); - AssetManager::Instance().UnregisterHandler(&m_barAssetHandler); - AssetManager::Destroy(); - - InstanceDatabase::Destroy(); - - AllocatorInstance::Destroy(); - AllocatorInstance::Destroy(); - AllocatorsFixture::TearDown(); - } - }; - - TEST_F(InstanceDatabaseTestWithMultipleSubclasses, InstanceCreate) - { - auto& assetManager = AssetManager::Instance(); - auto& instanceDatabase = InstanceDatabase::Instance(); - - Asset fooAsset = assetManager.CreateAsset(s_assetId0, AZ::Data::AssetLoadBehavior::Default); - Asset barAsset = assetManager.CreateAsset(s_assetId1, AZ::Data::AssetLoadBehavior::Default); - - // Run the creation tests on 'A' first. - - Instance fooInstanceA = instanceDatabase.Find(s_instanceId0); - EXPECT_EQ(fooInstanceA, nullptr); - - Instance barInstanceA = instanceDatabase.Find(s_instanceId1); - EXPECT_EQ(barInstanceA, nullptr); - - fooInstanceA = instanceDatabase.FindOrCreate(s_instanceId0, fooAsset); - EXPECT_NE(fooInstanceA, nullptr); - EXPECT_EQ(fooInstanceA->m_asset, fooAsset); - EXPECT_TRUE(azrtti_typeid() == fooInstanceA->RTTI_GetType()); - EXPECT_EQ(fooInstanceA, instanceDatabase.Find(s_instanceId0)); - - barInstanceA = instanceDatabase.FindOrCreate(s_instanceId1, barAsset); - EXPECT_NE(barInstanceA, nullptr); - EXPECT_EQ(barInstanceA->m_asset, barAsset); - EXPECT_TRUE(azrtti_typeid() == barInstanceA->RTTI_GetType()); - EXPECT_EQ(barInstanceA, instanceDatabase.Find(s_instanceId1)); - - // Run the same test on 'B' to make sure it works independently. - - Instance fooInstanceB = instanceDatabase.Find(s_instanceId2); - EXPECT_EQ(fooInstanceB, nullptr); - - Instance barInstanceB = instanceDatabase.Find(s_instanceId3); - EXPECT_EQ(barInstanceB, nullptr); - - fooInstanceB = instanceDatabase.FindOrCreate(s_instanceId2, fooAsset); - EXPECT_NE(fooInstanceB, nullptr); - EXPECT_EQ(fooInstanceB->m_asset, fooAsset); - EXPECT_TRUE(azrtti_typeid() == fooInstanceB->RTTI_GetType()); - EXPECT_EQ(fooInstanceB, instanceDatabase.Find(s_instanceId2)); - - barInstanceB = instanceDatabase.FindOrCreate(s_instanceId3, barAsset); - EXPECT_NE(barInstanceB, nullptr); - EXPECT_EQ(barInstanceB->m_asset, barAsset); - EXPECT_TRUE(azrtti_typeid() == barInstanceB->RTTI_GetType()); - EXPECT_EQ(barInstanceB, instanceDatabase.Find(s_instanceId3)); - - // Make sure the instances are unique - - EXPECT_NE(fooInstanceA, fooInstanceB); - EXPECT_NE(barInstanceA, barInstanceB); - } - - TEST_F(InstanceDatabaseTestWithMultipleSubclasses, TestError_AddHandler_AssetTypeIsNotSubclass) - { - MyAssetHandler testAssetHandler; - AssetManager::Instance().RegisterHandler(&testAssetHandler, azrtti_typeid()); - - // Register an instance handler with an unrelated asset type. This can't actually - // check the AssetType yet because all it has are AssetType GUIDs, no actual data. - { - InstanceHandler instanceHandler; - instanceHandler.m_createFunction = [](AssetData* assetData) - { - return aznew BaseInstance(static_cast(assetData)); - }; - - AssetType unrelatedAssetType = azrtti_typeid(); - - InstanceDatabase::Instance().AddHandler(unrelatedAssetType, instanceHandler); - } - - // Try to use the unrelated handler. This is where we'll actually get an error. - { - AZ_TEST_START_ASSERTTEST; - - Asset testAsset = AssetManager::Instance().CreateAsset(s_assetId0, AZ::Data::AssetLoadBehavior::Default); - - EXPECT_EQ(nullptr, InstanceDatabase::Instance().FindOrCreate(s_instanceId0, testAsset)); - - AZ_TEST_STOP_ASSERTTEST(1); - } - - AssetManager::Instance().UnregisterHandler(&testAssetHandler); - } - - TEST_F(InstanceDatabaseTestWithMultipleSubclasses, TestError_AddHandler_AlreadyExists) - { - InstanceHandler instanceHandler; - instanceHandler.m_createFunction = [](AssetData*) - { - return nullptr; // Doesn't matter - }; - - AZ_TEST_START_ASSERTTEST; - - // The SetUp() function already registered a handler for FooAsset so this should fail - InstanceDatabase::Instance().AddHandler(azrtti_typeid(), instanceHandler); - InstanceDatabase::Instance().AddHandler(azrtti_typeid(), [](AssetData*) { return nullptr; }); - - AZ_TEST_STOP_ASSERTTEST(2); - } -} +} // namespace UnitTest diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslBuilder.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslBuilder.cpp deleted file mode 100644 index 668d6866d3..0000000000 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslBuilder.cpp +++ /dev/null @@ -1,402 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#include "AzslBuilder.h" -#include "ShaderBuilderUtility.h" -#include "ShaderPlatformInterfaceRequest.h" -#include - -#include -#include - -#include - -namespace AZ -{ - namespace ShaderBuilder - { - enum class JobParameterIndices : uint32_t - { - ApiName, - PreprocessedCode, - PreprocessorError, - SkipJob - }; - - AZ::Uuid AzslBuilder::GetUUID() - { - return AZ::Uuid::CreateString("{72DCFC95-1B9E-4A8D-8633-D497CACD98AB}"); - } - - RHI::ShaderPlatformInterface* GetShaderPlatformInterfaceForApi(const AZStd::string& apiNameFilter, const AssetBuilderSDK::PlatformInfo& currentPlatform) - { - AZStd::vector platformInterfaces; - ShaderPlatformInterfaceRequestBus::BroadcastResult(platformInterfaces, &ShaderPlatformInterfaceRequest::GetShaderPlatformInterface, currentPlatform); - for (RHI::ShaderPlatformInterface* oneInterface : platformInterfaces) - { - if (oneInterface && oneInterface->GetAPIName().GetStringView() == apiNameFilter) - { - return oneInterface; - } - } - return nullptr; - } - - PreprocessorData PreprocessSource(const AZStd::string& inputFile, const AZStd::string& originalPath, const PreprocessorOptions& options) - { - // run mcpp - PreprocessorData output; - PreprocessFile(inputFile, output, options, true, true); - // do not let the filename.api.azsl.prepend be the filename that will be regarded as the source. - // because SRG assets are located using the 'containingFile' so we need to preserve the true origin: - MutateLineDirectivesFileOrigin(output.code, originalPath); - RHI::ReportErrorMessages(AzslBuilder::BuilderName, output.diagnostics); - return output; - } - - void AddAzslBuilderJobDependency(AssetBuilderSDK::JobDescriptor& jobDescriptor, const AZStd::string& platformInfoIdentifier, AZStd::string_view apiName, AZStd::string_view fullFilePath) - { - AssetBuilderSDK::SourceFileDependency fileDependency; - fileDependency.m_sourceFileDependencyPath = fullFilePath; - - AssetBuilderSDK::JobDependency dependency; - dependency.m_jobKey = AzslBuilder::JobKey; - dependency.m_jobKey += " "; - dependency.m_jobKey += apiName; - dependency.m_platformIdentifier = platformInfoIdentifier; - dependency.m_sourceFile = fileDependency; - dependency.m_type = AssetBuilderSDK::JobDependencyType::Order; - jobDescriptor.m_jobDependencyList.emplace_back(dependency); - } - - void AzslBuilder::CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const - { - AZStd::string fullPath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.data(), request.m_sourceFile.data(), fullPath, true); - - // this builder may take as input: - // .shader .azsl .azsli .srgi - // it will not behave strictly exactly the same for each type - - // Only *.srgi files are supposed to include files that define "partial" qualified SRGs. - const bool isSrgi = AzFramework::StringFunc::Path::IsExtension(fullPath.c_str(), SrgIncludeExtension); - - // .azsli needs "skip check" - const bool isAzsli = AzFramework::StringFunc::Path::IsExtension(fullPath.c_str(), "azsli"); - - // .shader files must be opened to get their build options and the referenced azsl file - const bool isShader = AzFramework::StringFunc::Path::IsExtension(fullPath.c_str(), RPI::ShaderSourceData::Extension); - - // .azsl must not be skipped, otherwise we're creating a risk of two .shader referring to the same .azsl racing for its output product - - // To avoid the warning: - // "No job was found to match the job dependency criteria declared by file "..." - // We will schedule the job, but will do nothing - //bool shouldSkipFile = false; - - // We treat some issues as warnings and return "Success" from CreateJobs allows us to report the dependency. - // If/when a valid dependency file appears, that will trigger the ShaderVariantAssetBuilder to run again. - // Since CreateJobs will pass, we forward this message to ProcessJob which will report it as an error. - //bool gotPreprocessingError = false; - - - // The following if-block will be removed once [GFX TODO][ATOM-5302] is addressed, and - // azslc allows redundant SrgSemantics for "partial" qualified SRGs. - if (isAzsli) - { - auto skipCheck = ShaderBuilderUtility::ShouldSkipFileForSrgProcessing(BuilderName, fullPath); - if (skipCheck != ShaderBuilderUtility::SrgSkipFileResult::ContinueProcess) - { - response.m_result = skipCheck == ShaderBuilderUtility::SrgSkipFileResult::Error ? - AssetBuilderSDK::CreateJobsResultCode::Failed : AssetBuilderSDK::CreateJobsResultCode::Success; - return; - } - } - - if (isShader) - { - // Need to get the path to the shader file from the template, so that we can preprocess the shader data and setup - // source file dependencies. - auto descriptorParseOutput = ShaderBuilderUtility::LoadShaderDataJson(fullPath); - if (!descriptorParseOutput.IsSuccess()) - { - AZ_Error(BuilderName, false, "Failed to parse Shader Descriptor JSON: %s", descriptorParseOutput.GetError().c_str()); - return; - } - // update the value of fullPath to mean directly, the azsl file: - ShaderBuilderUtility::GetAbsolutePathToAzslFile(fullPath, descriptorParseOutput.GetValue().m_source, fullPath); - } - - GlobalBuildOptions buildOptions = ReadBuildOptions(BuilderName); - - for (const AssetBuilderSDK::PlatformInfo& info : request.m_enabledPlatforms) - { - AZ_TraceContext("For platform", info.m_identifier.data()); - - // Get the platform interfaces to be able to access the prepend file - AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverValidShaderPlatformInterfaces(info); - - // Preprocess the shader file, per activated platform. - for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) - { - auto apiNameAsStringView = shaderPlatformInterface->GetAPIName().GetStringView(); - - AssetBuilderSDK::JobDescriptor jobDescriptor; - jobDescriptor.m_priority = 2; - // [GFX TODO][ATOM-2830] Set 'm_critical' back to 'false' once proper fix for Atom startup issues are in - jobDescriptor.m_critical = true; - jobDescriptor.m_jobKey = JobKey; - jobDescriptor.m_jobKey += " "; - jobDescriptor.m_jobKey += apiNameAsStringView; - jobDescriptor.SetPlatformIdentifier(info.m_identifier.data()); - jobDescriptor.m_jobParameters[(u32)JobParameterIndices::ApiName] = apiNameAsStringView; - if (isShader) - { - // add a job dependency on the azsl run (of that same job: AzslBuilder - because it also runs on .azsl) - AddAzslBuilderJobDependency(jobDescriptor, info.m_identifier, apiNameAsStringView, fullPath); - } - - // execute azsl prepending here, before preprocess, in order to support macros in AzslcHeader.azsli - AZStd::string prependedAzslSourceCode; - RHI::PrependArguments args; - args.m_sourceFile = fullPath.c_str(); - args.m_prependFile = shaderPlatformInterface->GetAzslHeader(info); - args.m_addSuffixToFileName = shaderPlatformInterface->GetAPIName().GetCStr(); - args.m_destinationStringOpt = &prependedAzslSourceCode; - - if (RHI::PrependFile(args) == fullPath) // error case. it returns the combined-file's name on success, or original path on failure, but here we use the "direct to string" mode so we don't need to store the returned name. - { - response.m_result = AssetBuilderSDK::CreateJobsResultCode::Failed; - return; - } - AZStd::string originalLocation; - // extract the (full) directory chain from the path: (eg from "d:/p/f.e" extract "d:/p/") - AzFramework::StringFunc::Path::GetFullPath(fullPath.c_str(), originalLocation); - // have to go through filesystem because we have no way to pipe data through mcpp (because of single threaded static link call and buffer limits) - // we can't use a temporary folder because CreateJobs API does not warrant side effects, and does not prepare a temp folder. - // we can't use the OS temp folder anyway, because many includes (eg #include "../RPI/Shadow.h") are relative and will only work from the original location - AZStd::string prependedPath = ShaderBuilderUtility::DumpAzslPrependedCode( - BuilderName, prependedAzslSourceCode, originalLocation, ShaderBuilderUtility::ExtractStemName(fullPath.c_str()), - shaderPlatformInterface->GetAPIName().GetStringView()); - // run mcpp - PreprocessorData preprocessorData = PreprocessSource(prependedPath, fullPath, buildOptions.m_preprocessorSettings); - jobDescriptor.m_jobParameters[(u32)JobParameterIndices::PreprocessorError] = preprocessorData.diagnostics; // save for ProcessJob - jobDescriptor.m_jobParameters[(u32)JobParameterIndices::PreprocessedCode] = preprocessorData.code; // save for ProcessJob - AZ::IO::SystemFile::Delete(prependedPath.c_str()); // don't let that intermediate file dirty a folder under source version control. - - for (AZStd::string includePath : preprocessorData.includedPaths) - { - // m_sourceFileDependencyList does not support paths with "." or ".." for relative lookup, but the preprocessor - // may produce path strings like "C:/a/b/c/../../d/file.azsli" so we have to normalize - AzFramework::StringFunc::Path::Normalize(includePath); - - AssetBuilderSDK::SourceFileDependency includeFileDependency; - includeFileDependency.m_sourceFileDependencyPath = includePath; - response.m_sourceFileDependencyList.emplace_back(includeFileDependency); - } - response.m_createJobOutputs.push_back(jobDescriptor); - } // all RHI platforms - } // for all request.m_enabledPlatforms - response.m_result = AssetBuilderSDK::CreateJobsResultCode::Success; - } - - enum class ErrorStrategy { HardFailIfAbsent, ReturnEmptyIfAbsent }; - static AZStd::string GetJobParameterValue(const AssetBuilderSDK::ProcessJobRequest& request, JobParameterIndices index, [[maybe_unused]] ErrorStrategy failBehavior) - { - auto iterator = request.m_jobDescription.m_jobParameters.find(static_cast(index)); - if (iterator == request.m_jobDescription.m_jobParameters.end()) - { - AZ_Error(AzslBuilder::BuilderName, failBehavior != ErrorStrategy::HardFailIfAbsent, "Saved data is missing in job parameters. for index [%d]", index); - return {}; - } - return iterator->second; - } - - // eg: ("D:/p/x.a", "D:/p/x.b") -> yes - static bool HasSameFileName(const AZStd::string& lhsPath, const AZStd::string& rhsPath) - { - using namespace StringFunc::Path; - AZStd::string stem1; - GetFileName(lhsPath.c_str(), stem1); - AZStd::string stem2; - GetFileName(rhsPath.c_str(), stem2); - return stem1 == stem2; - } - - void AzslBuilder::ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const - { - if (request.m_jobDescription.m_jobParameters.find((u32)JobParameterIndices::SkipJob) != request.m_jobDescription.m_jobParameters.end()) - { - AZ_TracePrintf(BuilderName, "Early out because this file was determined to not need an independent build\n"); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - return; - } - // report the deffered diagnostics: - const AZStd::string& preprocessorErrors = GetJobParameterValue(request, JobParameterIndices::PreprocessorError, ErrorStrategy::ReturnEmptyIfAbsent); - if (!preprocessorErrors.empty()) - { - bool foundErrors = RHI::ReportErrorMessages(BuilderName, preprocessorErrors.c_str()); - if (foundErrors) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - } - - const AZStd::sys_time_t startTime = AZStd::GetTimeNowTicks(); - AZStd::string fullSourcePath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.c_str(), request.m_sourceFile.c_str(), fullSourcePath, true); - // extract "name" from "P:/F/name.x" - AZStd::string sourceStemName; - AzFramework::StringFunc::Path::GetFileName(fullSourcePath.c_str(), sourceStemName); - - GlobalBuildOptions buildOptions = ReadBuildOptions(BuilderName); - - // get the shader platform interface that matches this job's API - const AZStd::string& apiName = GetJobParameterValue(request, JobParameterIndices::ApiName, ErrorStrategy::HardFailIfAbsent); - const AZStd::string& preprocessedCode = GetJobParameterValue(request, JobParameterIndices::PreprocessedCode, ErrorStrategy::ReturnEmptyIfAbsent); - RHI::ShaderPlatformInterface* platformInterface = GetShaderPlatformInterfaceForApi(apiName, request.m_platformInfo); - if (!platformInterface) - { - AZ_Error(BuilderName, false, "Could not retreive Shader Platform Interface"); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - const bool isSrgi = AzFramework::StringFunc::Path::IsExtension(fullSourcePath.c_str(), SrgIncludeExtension); - const bool isAzsli = AzFramework::StringFunc::Path::IsExtension(fullSourcePath.c_str(), "azsli"); - const bool isShader = AzFramework::StringFunc::Path::IsExtension(fullSourcePath.c_str(), RPI::ShaderSourceData::Extension); - if (isShader) - { - // read .shader -> access azsl path -> make absolute - RPI::ShaderSourceData shaderAssetSource; - AZStd::shared_ptr inputFiles = ShaderBuilderUtility::PrepareSourceInput(BuilderName, fullSourcePath, shaderAssetSource); - if (!inputFiles) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - if (shaderAssetSource.IsRhiBackendDisabled(platformInterface->GetAPIName())) - { - // Gracefully do nothing and return success. - AZ_TracePrintf( - BuilderName, "Skipping shader compilation [%s] for API [%s]\n", fullSourcePath.c_str(), - platformInterface->GetAPIName().GetCStr()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - return; - } - - - // Save .shader file name - AzFramework::StringFunc::Path::GetFileName(request.m_sourceFile.data(), inputFiles->m_shaderFileName); - - // Verify the presence of potential differences between the global options, and local options: - bool mustRebuild = buildOptions.m_compilerArguments.HasDifferentAzslcArguments(shaderAssetSource.m_compiler); - - // Merge compiler options coming from 2 source: global options (from project Config/), and .shader options. - // We define a merge behavior that is: ".shader wins if set" (local overrides global) - buildOptions.m_compilerArguments.Merge(shaderAssetSource.m_compiler); - - // Earlier, we declared a job dependency on the .azsl's job, let's access the produced assets: - uint32_t subId = ShaderBuilderUtility::MakeAzslBuildProductSubId( - RPI::ShaderAssetSubId::GeneratedHlslSource, platformInterface->GetAPIType()); - auto assetIdOutcome = RPI::AssetUtils::MakeAssetId(inputFiles->m_azslSourceFullPath, subId); - AZ_Warning(BuilderName, assetIdOutcome.IsSuccess(), "Product of dependency %s not found: this is an oddity but build can continue.", inputFiles->m_azslSourceFullPath.c_str()); - if (assetIdOutcome.IsSuccess()) - { - // The .azsl build job didn't know about the build options listed in the .shader - // so it produced "generic" artifacts xxx.ia.json, xxx.hlsl, etc. - if (!mustRebuild) - { - // They are in fact sufficient. nothing more to do - AZ_TracePrintf(BuilderName, "Product output already built by %s. exiting.", inputFiles->m_azslSourceFullPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - return; - } - // Otherwise, let's go again, but we need to modify the output's name to avoid product conflicts.* - AZ_TracePrintf(BuilderName, "Product output already built by %s is not reusable because of incompatible azslc CompilerHints: launching independent build", inputFiles->m_azslSourceFullPath.c_str()); - } - - if (HasSameFileName(fullSourcePath, inputFiles->m_azslSourceFullPath)) - { - // let's add a "distinguisher" to the names of the outproduct artifacts of this build round.* - // Because otherwise the asset processor is not going to accept an overwrite of the ones output by the .azsl job - static constexpr char RebuildSuffix[] = ".shader-w-diff-azslc-opts"; - sourceStemName += RebuildSuffix; - } - } - - AZStd::string preprocessedPath = ShaderBuilderUtility::DumpPreprocessedCode( - BuilderName, - preprocessedCode, - request.m_tempDirPath, - sourceStemName, - apiName); - - AZ_TraceContext("Platform API", apiName); - - AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); - if (jobCancelListener.IsCancelled()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; - return; - } - - // compiler setup - ShaderBuilder::AzslCompiler azslc(preprocessedPath); - AZStd::string compilerParameters = platformInterface->GetAzslCompilerParameters(buildOptions.m_compilerArguments); - compilerParameters += " "; - compilerParameters += platformInterface->GetAzslCompilerWarningParameters(buildOptions.m_compilerArguments); - AtomShaderConfig::AddParametersFromConfigFile(compilerParameters, request.m_platformInfo); - if (isSrgi || isAzsli) - { - // When compiling srgi or azsli files, the SRGs may appear as unused. It is necessary - // to remove the flag --strip-unused-srgs in case it is present in the compiler parameters. - AzFramework::StringFunc::Replace(compilerParameters, " --strip-unused-srgs", ""); - } - - AZStd::string outputName = AZStd::string::format("%s.%s.hlsl", sourceStemName.c_str(), apiName.c_str()); - AzFramework::StringFunc::Path::Join(request.m_tempDirPath.c_str(), outputName.c_str(), outputName, true); - - auto emitFullOutcome = azslc.EmitFullData(compilerParameters, outputName); - if (!emitFullOutcome.IsSuccess()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - for (int i = 0; i < emitFullOutcome.GetValue().size(); ++i) - { - AssetBuilderSDK::JobProduct jobProduct; - jobProduct.m_productFileName = emitFullOutcome.GetValue()[i]; - static const AZ::Uuid AzslOutcomeType = "{6977AEB1-17AD-4992-957B-23BB2E85B18B}"; - jobProduct.m_productAssetType = AzslOutcomeType; - jobProduct.m_productSubID = ShaderBuilderUtility::MakeAzslBuildProductSubId(ShaderBuilderUtility::AzslSubProducts::SubList[i], platformInterface->GetAPIType()); - jobProduct.m_dependenciesHandled = true; - // Note that the output products are not traditional product assets that will be used by the game project. - // They are artifacts that are produced once, cached, and used later by other AssetBuilders as a way to centralize build organization. - response.m_outputProducts.push_back(AZStd::move(jobProduct)); - } - - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - - const AZStd::sys_time_t endTime = AZStd::GetTimeNowTicks(); - const AZStd::sys_time_t deltaTime = endTime - startTime; - const float elapsedTimeSeconds = (float)(deltaTime) / (float)AZStd::GetTimeTicksPerSecond(); - - AZ_TracePrintf(BuilderName, "Finished compiling %s in %.2f seconds\n", request.m_sourceFile.c_str(), elapsedTimeSeconds); - - ShaderBuilderUtility::LogProfilingData(BuilderName, sourceStemName); - } // end ProcessJob - } // ShaderBuilder -} // AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslBuilder.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslBuilder.h deleted file mode 100644 index a454e8cdf6..0000000000 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslBuilder.h +++ /dev/null @@ -1,68 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include -#include -#include - -#include -#include - -#include -#include - -#include -#include - -#include -#include -#include "AtomShaderConfig.h" -#include "ShaderBuilderUtility.h" - -namespace AZ -{ - namespace ShaderBuilder - { - static constexpr char AzslBuilderName[] = "AzslBuilder"; - - //! This builder is the forerunner of the shader build pipeline. - //! It will perform the first 3 transformations on shader files (.shader) and AZSL-containing files (.azsl/.azsli/.srgi) - //! Which are: [prepend common header -> preprocess -> transpile AZSL to HLSL & reflect all shader program properties of interest into json files] - //! The next builders in the chain: SRG/Shader/Variant, will consume the output products of this builder, without having to re-run Azslc nor Mcpp - //! Note that the output products are not traditional product assets that will be used by the game project. - //! They are artifacts that are produced once, cached, and used later by other AssetBuilders as a way to centralize build organization. - class AzslBuilder - : public AssetBuilderSDK::AssetBuilderCommandBus::Handler - { - public: - - static constexpr const char* BuilderName = AzslBuilderName; - static constexpr char JobKey[] = "AZSL Build"; - static constexpr char SrgIncludeExtension[] = "srgi"; - - // Asset Builder Callback Functions - void CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const; - void ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const; - - ////////////////////////////////////////////////////////////////////////// - // AssetBuilderSDK::AssetBuilderCommandBus interface - void ShutDown() override {}; - ////////////////////////////////////////////////////////////////////////// - - static AZ::Uuid GetUUID(); - }; - - //! Helper for dependent builders - void AddAzslBuilderJobDependency(AssetBuilderSDK::JobDescriptor& jobDescriptor, const AZStd::string& platformInfoIdentifier, AZStd::string_view apiName, AZStd::string_view fullFilePath); - } // ShaderBuilder -} // AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslCompiler.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslCompiler.cpp index e3b482742b..f45d3738c0 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslCompiler.cpp +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslCompiler.cpp @@ -123,7 +123,7 @@ namespace AZ namespace SubProducts = ShaderBuilderUtility::AzslSubProducts; - Outcome AzslCompiler::EmitFullData(const AZStd::string& parameters, const AZStd::string& outputFile /* = ""*/, const char * addSuffix) const + Outcome AzslCompiler::EmitFullData(const AZStd::string& parameters, const AZStd::string& outputFile /* = ""*/) const { bool success = Compile("--full " + parameters, outputFile); if (!success) @@ -139,16 +139,6 @@ namespace AZ // append .json if it's one of those subs: auto listOfJsons = { SubProducts::ia, SubProducts::om, SubProducts::srg, SubProducts::options, SubProducts::bindingdep }; subProductFilePath += AZStd::any_of(AZ_BEGIN_END(listOfJsons), [&](auto v) { return v == subProduct.m_value; }) ? ".json" : ""; - - // [GFX TODO] Remove when [ATOM-15472] - if (addSuffix) - { - // Rename the product file. - AZStd::string finalSubProductFilePath = AZStd::string::format("%s%s", subProductFilePath.c_str(), addSuffix); - AZ::IO::Move(subProductFilePath.c_str(), finalSubProductFilePath.c_str()); - subProductFilePath = finalSubProductFilePath; - } - productPaths[subProduct.m_value] = subProductFilePath; } productPaths[SubProducts::azslin] = GetInputFilePath(); // post-fixup this one after the loop, because it's not an output of azslc, it's an output of the builder though. diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslCompiler.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslCompiler.h index 8da03cd6e5..cb30da068f 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslCompiler.h +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslCompiler.h @@ -38,9 +38,8 @@ namespace AZ //! @param inputFilePath The target input file to compile. Should be a valid AZSL file with no preprocessing directives. AzslCompiler(const AZStd::string& inputFilePath); - //! [GFX TODO] Remove @addSuffix when [ATOM-15472] //! compile with --full and generate all .json files - Outcome EmitFullData(const AZStd::string& parameters, const AZStd::string& outputFile = "", const char * addSuffix = nullptr) const; + Outcome EmitFullData(const AZStd::string& parameters, const AZStd::string& outputFile = "") const; //! compile to HLSL independently bool EmitShader(AZ::IO::GenericStream& outputStream, const AZStd::string& extraCompilerParams) const; //! compile with --ia independently and populate document @output diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.cpp index bc2e810f84..02b4fa668e 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.cpp +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.cpp @@ -22,7 +22,6 @@ #include #include #include -#include #include @@ -83,42 +82,10 @@ namespace AZ RHI::ShaderPlatformInterfaceRegisterBus::Handler::BusConnect(); ShaderPlatformInterfaceRequestBus::Handler::BusConnect(); - // Register AZSL's compilation products Builder - AssetBuilderSDK::AssetBuilderDesc azslBuilderDescriptor; - azslBuilderDescriptor.m_name = "AZSL Builder"; - azslBuilderDescriptor.m_version = 8; // ATOM-15276 - // register all extensions thay may carry azsl code. header. main shader. or SRG - azslBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(AZStd::string::format("*.%s", RPI::ShaderSourceData::Extension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); - azslBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern("*.azsl", AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); - azslBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern("*.azsli", AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); - azslBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(AZStd::string::format("*.%s", SrgLayoutBuilder::MergedPartialSrgsExtension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); - azslBuilderDescriptor.m_busId = AzslBuilder::GetUUID(); - azslBuilderDescriptor.m_createJobFunction = AZStd::bind(&AzslBuilder::CreateJobs, &m_azslBuilder, AZStd::placeholders::_1, AZStd::placeholders::_2); - azslBuilderDescriptor.m_processJobFunction = AZStd::bind(&AzslBuilder::ProcessJob, &m_azslBuilder, AZStd::placeholders::_1, AZStd::placeholders::_2); - - m_azslBuilder.BusConnect(azslBuilderDescriptor.m_busId); - AssetBuilderSDK::AssetBuilderBus::Broadcast(&AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, azslBuilderDescriptor); - - // Register Shader Resource Group Layout Builder - AssetBuilderSDK::AssetBuilderDesc srgLayoutBuilderDescriptor; - srgLayoutBuilderDescriptor.m_name = "Shader Resource Group Layout Builder"; - srgLayoutBuilderDescriptor.m_version = 55; // ATOM-15276 - - srgLayoutBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern("*.azsl", AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); - srgLayoutBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern("*.azsli", AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); - srgLayoutBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(AZStd::string::format("*.%s", SrgLayoutBuilder::MergedPartialSrgsExtension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); - srgLayoutBuilderDescriptor.m_busId = SrgLayoutBuilder::GetUUID(); - srgLayoutBuilderDescriptor.m_createJobFunction = AZStd::bind(&SrgLayoutBuilder::CreateJobs, &m_srgLayoutBuilder, AZStd::placeholders::_1, AZStd::placeholders::_2); - srgLayoutBuilderDescriptor.m_processJobFunction = AZStd::bind(&SrgLayoutBuilder::ProcessJob, &m_srgLayoutBuilder, AZStd::placeholders::_1, AZStd::placeholders::_2); - - m_srgLayoutBuilder.BusConnect(srgLayoutBuilderDescriptor.m_busId); - AssetBuilderSDK::AssetBuilderBus::Broadcast(&AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, srgLayoutBuilderDescriptor); - m_srgLayoutBuilder.Activate(); - // Register Shader Asset Builder AssetBuilderSDK::AssetBuilderDesc shaderAssetBuilderDescriptor; shaderAssetBuilderDescriptor.m_name = "Shader Asset Builder"; - shaderAssetBuilderDescriptor.m_version = 100; // ATOM-14298 + shaderAssetBuilderDescriptor.m_version = 101; // ATOM-15472 // .shader file changes trigger rebuilds shaderAssetBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern( AZStd::string::format("*.%s", RPI::ShaderSourceData::Extension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); shaderAssetBuilderDescriptor.m_busId = azrtti_typeid(); @@ -133,7 +100,7 @@ namespace AZ shaderVariantAssetBuilderDescriptor.m_name = "Shader Variant Asset Builder"; // Both "Shader Variant Asset Builder" and "Shader Asset Builder" produce ShaderVariantAsset products. If you update // ShaderVariantAsset you will need to update BOTH version numbers, not just "Shader Variant Asset Builder". - shaderVariantAssetBuilderDescriptor.m_version = 21; // ATOM-14298 + shaderVariantAssetBuilderDescriptor.m_version = 22; // ATOM-15472 shaderVariantAssetBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(AZStd::string::format("*.%s", RPI::ShaderVariantListSourceData::Extension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); shaderVariantAssetBuilderDescriptor.m_busId = azrtti_typeid(); shaderVariantAssetBuilderDescriptor.m_createJobFunction = AZStd::bind(&ShaderVariantAssetBuilder::CreateJobs, &m_shaderVariantAssetBuilder, AZStd::placeholders::_1, AZStd::placeholders::_2); @@ -145,7 +112,7 @@ namespace AZ // Register Precompiled Shader Builder AssetBuilderSDK::AssetBuilderDesc precompiledShaderBuilderDescriptor; precompiledShaderBuilderDescriptor.m_name = "Precompiled Shader Builder"; - precompiledShaderBuilderDescriptor.m_version = 8; // ATOM-15276 + precompiledShaderBuilderDescriptor.m_version = 9; // ATOM-15472 precompiledShaderBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(AZStd::string::format("*.%s", AZ::PrecompiledShaderBuilder::Extension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); precompiledShaderBuilderDescriptor.m_busId = azrtti_typeid(); precompiledShaderBuilderDescriptor.m_createJobFunction = AZStd::bind(&PrecompiledShaderBuilder::CreateJobs, &m_precompiledShaderBuilder, AZStd::placeholders::_1, AZStd::placeholders::_2); @@ -153,53 +120,13 @@ namespace AZ m_precompiledShaderBuilder.BusConnect(precompiledShaderBuilderDescriptor.m_busId); AssetBuilderSDK::AssetBuilderBus::Broadcast(&AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, precompiledShaderBuilderDescriptor); - - // Register Shader Asset Builder 2 - AssetBuilderSDK::AssetBuilderDesc shaderAssetBuilder2Descriptor; - shaderAssetBuilder2Descriptor.m_name = "Shader Asset Builder 2"; - shaderAssetBuilder2Descriptor.m_version = 1; // ATOM-15276 - // .shader2 file changes trigger rebuilds - shaderAssetBuilder2Descriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern( - AZStd::string::format("*.%s", RPI::ShaderSourceData::Extension2), - AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); - shaderAssetBuilder2Descriptor.m_busId = azrtti_typeid(); - shaderAssetBuilder2Descriptor.m_createJobFunction = - AZStd::bind(&ShaderAssetBuilder2::CreateJobs, &m_shaderAssetBuilder2, AZStd::placeholders::_1, AZStd::placeholders::_2); - shaderAssetBuilder2Descriptor.m_processJobFunction = - AZStd::bind(&ShaderAssetBuilder2::ProcessJob, &m_shaderAssetBuilder2, AZStd::placeholders::_1, AZStd::placeholders::_2); - - m_shaderAssetBuilder2.BusConnect(shaderAssetBuilder2Descriptor.m_busId); - AssetBuilderSDK::AssetBuilderBus::Broadcast( - &AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, shaderAssetBuilder2Descriptor); - - // Register Shader Variant Asset Builder 2 - AssetBuilderSDK::AssetBuilderDesc shaderVariantAssetBuilder2Descriptor; - shaderVariantAssetBuilder2Descriptor.m_name = "Shader Variant Asset Builder 2"; - // Both "Shader Variant Asset Builder" and "Shader Asset Builder" produce ShaderVariantAsset products. If you update - // ShaderVariantAsset you will need to update BOTH version numbers, not just "Shader Variant Asset Builder". - shaderVariantAssetBuilder2Descriptor.m_version = 1; // ATOM-15276 - shaderVariantAssetBuilder2Descriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern( - AZStd::string::format("*.%s", RPI::ShaderVariantListSourceData::Extension2), - AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard)); - shaderVariantAssetBuilder2Descriptor.m_busId = azrtti_typeid(); - shaderVariantAssetBuilder2Descriptor.m_createJobFunction = AZStd::bind( - &ShaderVariantAssetBuilder2::CreateJobs, &m_shaderVariantAssetBuilder2, AZStd::placeholders::_1, AZStd::placeholders::_2); - shaderVariantAssetBuilder2Descriptor.m_processJobFunction = AZStd::bind( - &ShaderVariantAssetBuilder2::ProcessJob, &m_shaderVariantAssetBuilder2, AZStd::placeholders::_1, AZStd::placeholders::_2); - - m_shaderVariantAssetBuilder2.BusConnect(shaderVariantAssetBuilder2Descriptor.m_busId); - AssetBuilderSDK::AssetBuilderBus::Broadcast( - &AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, shaderVariantAssetBuilder2Descriptor); } void AzslShaderBuilderSystemComponent::Deactivate() { m_shaderAssetBuilder.BusDisconnect(); - m_srgLayoutBuilder.BusDisconnect(); m_shaderVariantAssetBuilder.BusDisconnect(); m_precompiledShaderBuilder.BusDisconnect(); - m_shaderAssetBuilder2.BusDisconnect(); - m_shaderVariantAssetBuilder2.BusDisconnect(); RHI::ShaderPlatformInterfaceRegisterBus::Handler::BusDisconnect(); ShaderPlatformInterfaceRequestBus::Handler::BusDisconnect(); diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.h index 2f881f45d2..55b8882e08 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.h +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.h @@ -18,14 +18,10 @@ #include -#include "AzslBuilder.h" -#include "SrgLayoutBuilder.h" #include "ShaderAssetBuilder.h" #include "ShaderVariantAssetBuilder.h" #include "PrecompiledShaderBuilder.h" #include "ShaderPlatformInterfaceRequest.h" -#include "ShaderAssetBuilder2.h" -#include "ShaderVariantAssetBuilder2.h" namespace AZ { @@ -68,13 +64,9 @@ namespace AZ AZStd::vector GetShaderPlatformInterface(const AssetBuilderSDK::PlatformInfo& platformInfo) override; private: - AzslBuilder m_azslBuilder; - SrgLayoutBuilder m_srgLayoutBuilder; ShaderAssetBuilder m_shaderAssetBuilder; ShaderVariantAssetBuilder m_shaderVariantAssetBuilder; PrecompiledShaderBuilder m_precompiledShaderBuilder; - ShaderAssetBuilder2 m_shaderAssetBuilder2; - ShaderVariantAssetBuilder2 m_shaderVariantAssetBuilder2; /// Contains the ShaderPlatformInterface for all registered RHIs AZStd::unordered_map m_shaderPlatformInterfaces; diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/PrecompiledShaderBuilder.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/PrecompiledShaderBuilder.cpp index 2f7816ed67..62f76c0c12 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/PrecompiledShaderBuilder.cpp +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/PrecompiledShaderBuilder.cpp @@ -72,23 +72,6 @@ namespace AZ { AZStd::vector jobDependencyList; - // setup dependencies on the azsrg asset file names - for (const auto& srgFileName : precompiledShaderAsset.m_srgAssetFileNames) - { - AZStd::string srgAssetPath = RPI::AssetUtils::ResolvePathReference(request.m_sourceFile.c_str(), srgFileName); - - AssetBuilderSDK::SourceFileDependency sourceDependency; - sourceDependency.m_sourceFileDependencyPath = srgAssetPath; - response.m_sourceFileDependencyList.push_back(sourceDependency); - - AssetBuilderSDK::JobDependency jobDependency; - jobDependency.m_jobKey = "azsrg"; - jobDependency.m_platformIdentifier = platformInfo.m_identifier; - jobDependency.m_type = AssetBuilderSDK::JobDependencyType::Order; - jobDependency.m_sourceFile = sourceDependency; - jobDependencyList.push_back(jobDependency); - } - // setup dependencies on the root azshadervariant asset file names for (const auto& rootShaderVariantAsset : precompiledShaderAsset.m_rootShaderVariantAssets) { @@ -158,25 +141,6 @@ namespace AZ AssetBuilderSDK::JobProduct jobProduct; - // load Srg product assets - // these are the dependency Srg asset products that were processed prior to running this job - RPI::ShaderAssetCreator::ShaderResourceGroupAssets srgProductAssets; - for (const auto& srgAssetFileName : precompiledShaderAsset.m_srgAssetFileNames) - { - auto assetOutcome = RPI::AssetUtils::LoadAsset(request.m_fullPath, srgAssetFileName, 0); - if (!assetOutcome) - { - AZ_Error(PrecompiledShaderBuilderName, false, "Failed to retrieve Srg asset for file [%s]", srgAssetFileName.c_str()); - return; - } - srgProductAssets.push_back(assetOutcome.GetValue()); - - AssetBuilderSDK::ProductDependency productDependency; - productDependency.m_dependencyId = assetOutcome.GetValue().GetId(); - productDependency.m_flags = AZ::Data::ProductDependencyInfo::CreateFlags(AZ::Data::AssetLoadBehavior::PreLoad); - jobProduct.m_dependencies.push_back(productDependency); - } - // load the variant product assets // these are the dependency root variant asset products that were processed prior to running this job RPI::ShaderAssetCreator::ShaderRootVariantAssets rootVariantProductAssets; @@ -202,8 +166,7 @@ namespace AZ // Note that the Srg and Variant assets do not have embedded asset references and are processed with the RC Copy functionality RPI::ShaderAssetCreator shaderAssetCreator; shaderAssetCreator.Clone(Uuid::CreateRandom(), - shaderAsset, - srgProductAssets, + *shaderAsset, rootVariantProductAssets); Data::Asset outputShaderAsset; diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder.cpp index 8d491d5d4d..cd651b8176 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder.cpp +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder.cpp @@ -47,8 +47,7 @@ #include #include -#include "AzslBuilder.h" -#include "SrgLayoutBuilder.h" +#include "AzslCompiler.h" #include "ShaderVariantAssetBuilder.h" #include "ShaderBuilderUtility.h" #include "ShaderPlatformInterfaceRequest.h" @@ -63,19 +62,6 @@ namespace AZ static constexpr char ShaderAssetBuilderName[] = "ShaderAssetBuilder"; static constexpr uint32_t ShaderAssetBuildTimestampParam = 0; - static void AddSrgLayoutJobDependency(AssetBuilderSDK::JobDescriptor& jobDescriptor, const AssetBuilderSDK::PlatformInfo& platformInfo, AZStd::string_view fullFilePath) - { - AssetBuilderSDK::SourceFileDependency fileDependency; - fileDependency.m_sourceFileDependencyPath = fullFilePath; - - AssetBuilderSDK::JobDependency srgLayoutJobDependency; - srgLayoutJobDependency.m_jobKey = SrgLayoutBuilder::SrgLayoutBuilderJobKey; - srgLayoutJobDependency.m_platformIdentifier = platformInfo.m_identifier; - srgLayoutJobDependency.m_sourceFile = fileDependency; - srgLayoutJobDependency.m_type = AssetBuilderSDK::JobDependencyType::Order; - jobDescriptor.m_jobDependencyList.emplace_back(srgLayoutJobDependency); - } - void ShaderAssetBuilder::CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const { AZStd::string fullPath; @@ -90,20 +76,58 @@ namespace AZ // the PC's ShaderAsset). AZStd::sys_time_t shaderAssetBuildTimestamp = AZStd::GetTimeNowMicroSecond(); - // *** block (remove all this when [ATOM-4225] addressed) - AZStd::string azslFullPath; // Need to get the name of the azsl file from the .shader source asset, to be able to declare a dependency to SRG Layout Job. // and the macro options to preprocess. - auto descriptorParseOutput = ShaderBuilderUtility::LoadShaderDataJson(fullPath); - if (!descriptorParseOutput.IsSuccess()) + auto descriptorParseOutcome = ShaderBuilderUtility::LoadShaderDataJson(fullPath); + if (!descriptorParseOutcome.IsSuccess()) { - AZ_Error(ShaderAssetBuilderName, false, "Failed to parse Shader Descriptor JSON: %s", descriptorParseOutput.GetError().c_str()); + AZ_Error( + ShaderAssetBuilderName, false, "Failed to parse Shader Descriptor JSON: %s", + descriptorParseOutcome.GetError().c_str()); return; } - ShaderBuilderUtility::GetAbsolutePathToAzslFile(fullPath, descriptorParseOutput.GetValue().m_source, azslFullPath); - AZ_Warning(ShaderAssetBuilderName, IO::FileIOBase::GetInstance()->Exists(azslFullPath.c_str()), "Shader program listed as the source entry does not exist: %s.", azslFullPath.c_str()); + + RPI::ShaderSourceData shaderSourceData = descriptorParseOutcome.TakeValue(); + + AZStd::string azslFullPath; + ShaderBuilderUtility::GetAbsolutePathToAzslFile(fullPath, shaderSourceData.m_source, azslFullPath); + if (!IO::FileIOBase::GetInstance()->Exists(azslFullPath.c_str())) + { + AZ_Error( + ShaderAssetBuilderName, false, "Shader program listed as the source entry does not exist: %s.", azslFullPath.c_str()); + response.m_result = AssetBuilderSDK::CreateJobsResultCode::Failed; + return; + } + + GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderAssetBuilderName); - // *** end block (remove when [Atom-4225]) + + // [GFX TODO] [ATOM-14966] In principle, based on macro definitions, included files can change per supervariant. + // So, the list of source asset dependencies must be collected by running MCPP on each supervariant. + // For now, we will run MCPP only once because CreateJobs() should be as light as possible. + // + // Regardless of the PlatformInfo and enabled ShaderPlatformInterfaces, the azsl file will be preprocessed + // with the sole purpose of extracting all included files. For each included file a SourceDependency will be declared. + PreprocessorData output; + buildOptions.m_compilerArguments.Merge(shaderSourceData.m_compiler); + PreprocessFile(azslFullPath, output, buildOptions.m_preprocessorSettings, true, true); + for (auto includePath : output.includedPaths) + { + // m_sourceFileDependencyList does not support paths with "." or ".." for relative lookup, but the preprocessor + // may produce path strings like "C:/a/b/c/../../d/file.azsli" so we have to normalize + AzFramework::StringFunc::Path::Normalize(includePath); + + AssetBuilderSDK::SourceFileDependency includeFileDependency; + includeFileDependency.m_sourceFileDependencyPath = includePath; + response.m_sourceFileDependencyList.emplace_back(includeFileDependency); + } + + { + // Add the AZSL as source dependency + AssetBuilderSDK::SourceFileDependency azslFileDependency; + azslFileDependency.m_sourceFileDependencyPath = azslFullPath; + response.m_sourceFileDependencyList.emplace_back(azslFileDependency); + } for (const AssetBuilderSDK::PlatformInfo& platformInfo : request.m_enabledPlatforms) { @@ -111,6 +135,10 @@ namespace AZ // Get the platform interfaces to be able to access the prepend file AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverValidShaderPlatformInterfaces(platformInfo); + if (platformInterfaces.empty()) + { + continue; + } AssetBuilderSDK::JobDescriptor jobDescriptor; jobDescriptor.m_priority = 2; @@ -118,46 +146,6 @@ namespace AZ jobDescriptor.m_critical = true; jobDescriptor.m_jobKey = ShaderAssetBuilderJobKey; jobDescriptor.SetPlatformIdentifier(platformInfo.m_identifier.c_str()); - - // queue up AzslBuilder dependencies: - for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) - { - AddAzslBuilderJobDependency(jobDescriptor, platformInfo.m_identifier, shaderPlatformInterface->GetAPIName().GetCStr(), fullPath); - - {// *** block (remove all this when [ATOM-4225] addressed) - // this is the same code as in AzslBuilder.cpp's CreateJobs. This is not supposed to be repeated here (temporary hack), so not factorized. refer to AzslBuilder.cpp for code comments - AZStd::string prependedAzslSourceCode; - RHI::PrependArguments args; - args.m_sourceFile = fullPath.c_str(); - args.m_prependFile = shaderPlatformInterface->GetAzslHeader(platformInfo); - args.m_addSuffixToFileName = shaderPlatformInterface->GetAPIName().GetCStr(); - args.m_destinationStringOpt = &prependedAzslSourceCode; - - if (RHI::PrependFile(args) == fullPath) - { - response.m_result = AssetBuilderSDK::CreateJobsResultCode::Failed; - return; - } - AZStd::string originalLocation; - AzFramework::StringFunc::Path::GetFullPath(fullPath.c_str(), originalLocation); - AZStd::string prependedPath = ShaderBuilderUtility::DumpAzslPrependedCode( - ShaderAssetBuilderName, prependedAzslSourceCode, originalLocation, ShaderBuilderUtility::ExtractStemName(fullPath.c_str()), shaderPlatformInterface->GetAPIName().GetStringView()); - PreprocessorData output; - buildOptions.m_compilerArguments.Merge(descriptorParseOutput.GetValue().m_compiler); - PreprocessFile(azslFullPath, output, buildOptions.m_preprocessorSettings, true, true); - // srg layout builder job dependency on the azsl file itself. - // If there's a ShaderResourceGroup defined in this azsl file - // then its azsrg asset must be ready before We compile it. The azsrg requirement - // is only for diagnostics, because a preprocessed (flattened) azsl file contains - // all the SRG data it needs. - AddSrgLayoutJobDependency(jobDescriptor, platformInfo, azslFullPath); - for (auto included : output.includedPaths) - { - AddSrgLayoutJobDependency(jobDescriptor, platformInfo, included.c_str()); - } - AZ::IO::SystemFile::Delete(prependedPath.c_str()); // don't let that intermediate file dirty a folder under source version control. - }// *** end block remove when [Atom-4225] - } jobDescriptor.m_jobParameters.emplace(ShaderAssetBuildTimestampParam, AZStd::to_string(shaderAssetBuildTimestamp)); response.m_createJobOutputs.push_back(jobDescriptor); @@ -166,141 +154,55 @@ namespace AZ response.m_result = AssetBuilderSDK::CreateJobsResultCode::Success; } - static AssetBuilderSDK::ProcessJobResultCode CompileForAPI( - const ShaderBuilderUtility::AzslSubProducts::Paths& pathOfProductFiles, - RPI::ShaderAssetCreator& shaderAssetCreator, - RHI::ShaderPlatformInterface* shaderPlatformInterface, - AssetBuilderSDK::ProcessJobResponse& response, - AzslData& azslData, - const RHI::ShaderCompilerArguments& shaderCompilerArguments, - RPI::Ptr shaderOptionGroupLayout, - const RPI::ShaderSourceData& shaderSourceDataDescriptor, - AZStd::sys_time_t shaderAssetBuildTimestamp, - const ShaderResourceGroupAssets& srgAssets, - BindingDependencies& bindingDependencies, - const RootConstantData& rootConstantData, - const AssetBuilderSDK::ProcessJobRequest& request) + static bool SerializeOutShaderAsset(Data::Asset shaderAsset, + const AZStd::string& tempDirPath, + AssetBuilderSDK::ProcessJobResponse& response) { - AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); - - const AZStd::string& tempDirPath = request.m_tempDirPath; - - // discover entry points - MapOfStringToStageType shaderEntryPoints; - if (shaderSourceDataDescriptor.m_programSettings.m_entryPoints.empty()) + AZStd::string shaderAssetFileName = AZStd::string::format("%s.%s", shaderAsset->GetName().GetCStr(), RPI::ShaderAsset::Extension); + AZStd::string shaderAssetOutputPath; + AzFramework::StringFunc::Path::ConstructFull(tempDirPath.data(), shaderAssetFileName.data(), shaderAssetOutputPath, true); + + if (!Utils::SaveObjectToFile(shaderAssetOutputPath, DataStream::ST_BINARY, shaderAsset.Get())) { - AZ_TracePrintf(ShaderAssetBuilderName, "ProgramSettings do not specify entry points, will use GetDefaultEntryPointsFromShader()\n"); - ShaderBuilderUtility::GetDefaultEntryPointsFromFunctionDataList(azslData.m_functions, shaderEntryPoints); + AZ_Error(ShaderAssetBuilderName, false, "Failed to output Shader Descriptor"); + return false; } - else + + AssetBuilderSDK::JobProduct shaderJobProduct; + if (!AssetBuilderSDK::OutputObject(shaderAsset.Get(), shaderAssetOutputPath, azrtti_typeid(), + aznumeric_cast(RPI::ShaderAssetSubId::ShaderAsset), shaderJobProduct)) { - for (auto& iter : shaderSourceDataDescriptor.m_programSettings.m_entryPoints) - { - shaderEntryPoints[iter.m_name] = iter.m_type; - } + AZ_Error(ShaderAssetBuilderName, false, "Failed to output product dependencies."); + return false; } + response.m_outputProducts.push_back(AZStd::move(shaderJobProduct)); + + return true; + } - // Check if we were canceled before we do any heavy processing of - // the shader data (compiling the shader kernels, processing SRG - // and pipeline layout data, etc.). - if (jobCancelListener.IsCancelled()) - { - return AssetBuilderSDK::ProcessJobResult_Cancelled; - } - - // Signal the begin of shader data for an RHI API. - shaderAssetCreator.BeginAPI(shaderPlatformInterface->GetAPIType()); - RHI::Ptr pipelineLayoutDescriptor = ShaderBuilderUtility::BuildPipelineLayoutDescriptorForApi( - ShaderAssetBuilderName, shaderPlatformInterface, bindingDependencies, srgAssets, shaderEntryPoints, shaderCompilerArguments, &rootConstantData); - if (!pipelineLayoutDescriptor) - { - AZ_Error(ShaderAssetBuilderName, false, "Failed to build pipeline layout descriptor for api=[%s]", - shaderPlatformInterface->GetAPIName().GetCStr()); - AssetBuilderSDK::ProcessJobResult_Failed; - } - for (const auto& srgAsset : srgAssets) - { - shaderAssetCreator.AddShaderResourceGroupAsset(srgAsset); - } - shaderAssetCreator.SetPipelineLayout(pipelineLayoutDescriptor); - - // Generate shader source. - AZStd::string hlslSourcePath = pathOfProductFiles[ShaderBuilderUtility::AzslSubProducts::hlsl]; - Outcome hlslSourceContent = Utils::ReadFile(hlslSourcePath); - if (!hlslSourceContent.IsSuccess()) - { - AZ_Error(ShaderAssetBuilderName, false, "Failed to obtain shader source from %s. [%s]", hlslSourcePath.c_str(), hlslSourceContent.TakeError().c_str()); - return AssetBuilderSDK::ProcessJobResult_Failed; - } - - // The root ShaderVariantAsset needs to be created with the known uuid of the source .shader asset because - // the ShaderAsset owns a Data::Asset<> reference that gets serialized. It must have the correct uuid - // so the root ShaderVariantAsset is found when the ShaderAsset is deserialized. - AZStd::string fullSourcePath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.c_str(), request.m_sourceFile.c_str(), fullSourcePath, true); - const uint32_t productSubID = RPI::ShaderAsset::MakeAssetProductSubId( - shaderPlatformInterface->GetAPIUniqueIndex(), - aznumeric_cast(RPI::ShaderAssetSubId::RootShaderVariantAsset)); - auto assetIdOutcome = RPI::AssetUtils::MakeAssetId(fullSourcePath, productSubID); - AZ_Assert(assetIdOutcome.IsSuccess(), "Failed to get AssetId from shader %s", fullSourcePath.c_str()); - const Data::AssetId variantAssetId = assetIdOutcome.TakeValue(); - - // We always include the root shader variant (all options are unspecified) in the ShaderAsset itself. - ShaderVariantCreationContext variantCreationContext = { variantAssetId, hlslSourcePath, hlslSourceContent.GetValue(), shaderSourceDataDescriptor, - tempDirPath, request.m_platformInfo, *shaderOptionGroupLayout, shaderEntryPoints, shaderAssetBuildTimestamp }; - AZ::Outcome, AZStd::string> outcomeForShaderVariantAsset = ShaderVariantAssetBuilder::CreateShaderVariantAssetForAPI( - RPI::ShaderVariantListSourceData::VariantInfo(), - variantCreationContext, - *shaderPlatformInterface, - azslData, - shaderCompilerArguments, - pathOfProductFiles[ShaderBuilderUtility::AzslSubProducts::om], - pathOfProductFiles[ShaderBuilderUtility::AzslSubProducts::ia]); - if (!outcomeForShaderVariantAsset.IsSuccess()) - { - AZ_Error(ShaderAssetBuilderName, false, "Failed to serialize out the root shader variant for API [%s]: %s" - , shaderPlatformInterface->GetAPIName().GetCStr(), outcomeForShaderVariantAsset.GetError().c_str()); - return AssetBuilderSDK::ProcessJobResult_Failed; - } - - // Time to save, for the given rhi::api, the root shader variant as an asset. - Data::Asset shaderVariantAsset = outcomeForShaderVariantAsset.TakeValue(); - - AssetBuilderSDK::JobProduct variantAssetProduct; - if (!ShaderVariantAssetBuilder::SerializeOutShaderVariantAsset(shaderVariantAsset, fullSourcePath, tempDirPath, - *shaderPlatformInterface, productSubID, variantAssetProduct)) - { - AZ_Error(ShaderAssetBuilderName, false, "Failed to serialize out the root shader variant for API [%s]" - , shaderPlatformInterface->GetAPIName().GetCStr()); - return AssetBuilderSDK::ProcessJobResult_Failed; - } - response.m_outputProducts.push_back(variantAssetProduct); - - // add byproducts as job output products: - if (variantCreationContext.m_outputByproducts) - { - uint32_t subProductType = aznumeric_cast(RPI::ShaderAssetSubId::GeneratedHlslSource) + 1; - for (const AZStd::string& byproduct : variantCreationContext.m_outputByproducts->m_intermediatePaths) - { - AssetBuilderSDK::JobProduct jobProduct; - jobProduct.m_productFileName = byproduct; - jobProduct.m_productAssetType = Uuid::CreateName("DebugInfoByProduct-PdbOrDxilTxt"); - jobProduct.m_productSubID = RPI::ShaderAsset::MakeAssetProductSubId(shaderPlatformInterface->GetAPIUniqueIndex(), subProductType++); - response.m_outputProducts.push_back(AZStd::move(jobProduct)); - } - } - - shaderAssetCreator.SetRootShaderVariantAsset(shaderVariantAsset); - - // Populate the shader asset with all entry stage attributes + static AZ::Outcome BuildAttributesMap( + const RHI::ShaderPlatformInterface* shaderPlatformInterface, + const AzslData& azslData, + const MapOfStringToStageType& shaderEntryPoints, + bool& hasRasterProgram) + { + hasRasterProgram = false; + bool hasComputeProgram = false; + bool hasRayTracingProgram = false; RHI::ShaderStageAttributeMapList attributeMaps; attributeMaps.resize(RHI::ShaderStageCount); - for (const auto& shaderEntry : shaderSourceDataDescriptor.m_programSettings.m_entryPoints) + for (const auto& shaderEntryPoint : shaderEntryPoints) { - auto findId = AZStd::find_if(AZ_BEGIN_END(azslData.m_functions), [&shaderEntry](const auto& func) - { - return func.m_name == shaderEntry.m_name; - }); + auto shaderEntryName = shaderEntryPoint.first; + auto shaderStageType = shaderEntryPoint.second; + auto assetBuilderShaderType = ShaderBuilderUtility::ToAssetBuilderShaderType(shaderStageType); + hasRasterProgram |= shaderPlatformInterface->IsShaderStageForRaster(assetBuilderShaderType); + hasComputeProgram |= shaderPlatformInterface->IsShaderStageForCompute(assetBuilderShaderType); + hasRayTracingProgram |= shaderPlatformInterface->IsShaderStageForRayTracing(assetBuilderShaderType); + + auto findId = AZStd::find_if(AZ_BEGIN_END(azslData.m_functions), [&shaderEntryPoint](const auto& func) { + return func.m_name == shaderEntryPoint.first; + }); if (findId == azslData.m_functions.end()) { @@ -309,7 +211,7 @@ namespace AZ continue; } - const auto shaderStage = ToRHIShaderStage(ShaderBuilderUtility::ToAssetBuilderShaderType(shaderEntry.m_type)); + const auto shaderStage = ToRHIShaderStage(assetBuilderShaderType); for (const auto& attr : findId->attributesList) { // Some stages like RHI::ShaderStage::Tessellation are compound and consist of two or more shader entries @@ -320,221 +222,461 @@ namespace AZ attributeMaps[stageIndex][attributeName] = args; } } - shaderAssetCreator.SetShaderStageAttributeMapList(attributeMaps); - shaderAssetCreator.EndAPI(); - - return AssetBuilderSDK::ProcessJobResult_Success; - } - - static bool SerializeOutShaderAsset(Data::Asset shaderAsset, - const AZStd::string& tempDirPath, - AssetBuilderSDK::ProcessJobResponse& response) - { - AZStd::string shaderAssetFileName = AZStd::string::format("%s.%s", shaderAsset->GetName().GetCStr(), RPI::ShaderAsset::Extension); - AZStd::string shaderAssetOutputPath; - AzFramework::StringFunc::Path::ConstructFull(tempDirPath.data(), shaderAssetFileName.data(), shaderAssetOutputPath, true); - - if (!Utils::SaveObjectToFile(shaderAssetOutputPath, DataStream::ST_BINARY, shaderAsset.Get())) + if (hasRasterProgram && hasComputeProgram) { - AZ_Error(ShaderAssetBuilderName, false, "Failed to output Shader Descriptor"); - return false; + return AZ::Failure(AZStd::string(" Shader asset descriptor defines both a raster entry point and a compute entry point.")); } - AssetBuilderSDK::JobProduct shaderJobProduct; - if (!AssetBuilderSDK::OutputObject(shaderAsset.Get(), shaderAssetOutputPath, azrtti_typeid(), - aznumeric_cast(RPI::ShaderAssetSubId::ShaderAsset), shaderJobProduct)) + if (!hasRasterProgram && !hasComputeProgram && !hasRayTracingProgram) { - AZ_Error(ShaderAssetBuilderName, false, "Failed to output product dependencies."); - return false; + AZStd::string entryPointNames = ShaderBuilderUtility::GetAcceptableDefaultEntryPointNames(azslData); + return AZ::Failure( + AZStd::string::format( "Shader asset descriptor has a program variant that does not define any entry points. Either declare entry " + "points in the .shader file, or use one of the available default names (not case-sensitive): [%s]", + entryPointNames.c_str())); } - response.m_outputProducts.push_back(AZStd::move(shaderJobProduct)); - return true; + return AZ::Success(attributeMaps); } void ShaderAssetBuilder::ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const { const AZStd::sys_time_t startTime = AZStd::GetTimeNowTicks(); - AZStd::string fullSourcePath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.c_str(), request.m_sourceFile.c_str(), fullSourcePath, true); + AZStd::string shaderFullPath; + AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.c_str(), request.m_sourceFile.c_str(), shaderFullPath, true); + // Save .shader file name (no extension and no parent directory path) + AZStd::string shaderFileName; + AzFramework::StringFunc::Path::GetFileName(request.m_sourceFile.c_str(), shaderFileName); - RPI::ShaderAssetCreator shaderAssetCreator; - shaderAssetCreator.Begin(Uuid::CreateRandom()); + // No error checking because the same calls were already executed during CreateJobs() + auto descriptorParseOutcome = ShaderBuilderUtility::LoadShaderDataJson(shaderFullPath); + RPI::ShaderSourceData shaderSourceData = descriptorParseOutcome.TakeValue(); + AZStd::string azslFullPath; + ShaderBuilderUtility::GetAbsolutePathToAzslFile(shaderFullPath, shaderSourceData.m_source, azslFullPath); + AZ_TracePrintf(ShaderAssetBuilderName, "Original AZSL File: %s \n", azslFullPath.c_str()); - // read .shader -> access azsl path -> make absolute - RPI::ShaderSourceData shaderAssetSource; - AZStd::shared_ptr inputFiles = ShaderBuilderUtility::PrepareSourceInput(ShaderAssetBuilderName, fullSourcePath, shaderAssetSource); - if (!inputFiles) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderAssetBuilderName); - - // Save .shader file name - AzFramework::StringFunc::Path::GetFileName(request.m_sourceFile.data(), inputFiles->m_shaderFileName); + // The directory where the Azsl file was found must be added to the list of include paths + AZStd::string azslFolderPath; + AzFramework::StringFunc::Path::GetFolderPath(azslFullPath.c_str(), azslFolderPath); + GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderAssetBuilderName, azslFolderPath.c_str()); // Request the list of valid shader platform interfaces for the target platform. - AZStd::vector platformInterfaces; - ShaderPlatformInterfaceRequestBus::BroadcastResult(platformInterfaces, &ShaderPlatformInterfaceRequest::GetShaderPlatformInterface, request.m_platformInfo); - // Generate shaders for each of those ShaderPlatformInterfaces. - uint32_t countOfCompiledPlatformInterfaces = 0; - for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) + AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverEnabledShaderPlatformInterfaces( + request.m_platformInfo, shaderSourceData); + if (platformInterfaces.empty()) { - ShaderResourceGroupAssets srgAssets; - RPI::Ptr shaderOptionGroupLayout = RPI::ShaderOptionGroupLayout::Create(); - - if (!shaderPlatformInterface) - { - AZ_Error(ShaderAssetBuilderName, false, "ShaderPlatformInterface for [%s] is not registered, can't compile [%s]", request.m_platformInfo.m_identifier.c_str(), request.m_sourceFile.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - if (shaderAssetSource.IsRhiBackendDisabled(shaderPlatformInterface->GetAPIName())) - { - // Gracefully do nothing and continue with the next shaderPlatformInterface. - AZ_TracePrintf( - ShaderAssetBuilderName, "Skipping shader compilation [%s] for API [%s]\n", inputFiles->m_shaderFileName.c_str(), - shaderPlatformInterface->GetAPIName().GetCStr()); - continue; - } - - AZStd::sys_time_t shaderAssetBuildTimestamp = 0; - auto shaderAssetBuildTimestampIterator = request.m_jobDescription.m_jobParameters.find(ShaderAssetBuildTimestampParam); - if (shaderAssetBuildTimestampIterator != request.m_jobDescription.m_jobParameters.end()) - { - shaderAssetBuildTimestamp = AZStd::stoull(shaderAssetBuildTimestampIterator->second); - - if (AZStd::to_string(shaderAssetBuildTimestamp) != shaderAssetBuildTimestampIterator->second) - { - AZ_Assert(false, "Incorrect conversion of ShaderAssetBuildTimestampParam"); - return; - } - } - - AzslData azslData(inputFiles); - - AZ_TraceContext("Platform API", AZStd::string{ shaderPlatformInterface->GetAPIName().GetStringView() }); - AZ_TracePrintf(ShaderAssetBuilderName, "Preprocessed AZSL File: %s \n", azslData.m_preprocessedFullPath.c_str()); - - AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); - if (jobCancelListener.IsCancelled()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; - return; - } - - // obtain the build artifacts from the azsl builder: - auto azslArtifactsOutcome = ShaderBuilderUtility::ObtainBuildArtifactsFromAzslBuilder(ShaderAssetBuilderName, fullSourcePath, shaderPlatformInterface->GetAPIType(), request.m_platformInfo.m_identifier); - if (!azslArtifactsOutcome.IsSuccess()) - { - // If it failed, it may be because the .shader source file created no products! (this happens when the build options are similar) - // (the .azsl file *always* produces AzslBuilder artifacts. The.shader file *sometimes* produces AzslBuilder artifacts, when it has build options that have to be accounted for) - // If there are no artifacts from the .shader, then we fall back to the ones from the .azsl: - azslArtifactsOutcome = ShaderBuilderUtility::ObtainBuildArtifactsFromAzslBuilder(ShaderAssetBuilderName, inputFiles->m_azslSourceFullPath, shaderPlatformInterface->GetAPIType(), request.m_platformInfo.m_identifier); - if (!azslArtifactsOutcome.IsSuccess()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - } - - shaderAssetCreator.SetName(Name(azslData.m_sources->m_shaderFileName)); - shaderAssetCreator.SetDrawListName(Name(shaderAssetSource.m_drawListName)); - - shaderAssetCreator.SetShaderAssetBuildTimestamp(shaderAssetBuildTimestamp); - - BindingDependencies bindingDependencies; - RootConstantData rootConstantData; - AssetBuilderSDK::ProcessJobResultCode azslJsonReadResult = ShaderBuilderUtility::PopulateAzslDataFromJsonFiles( - ShaderAssetBuilderName, - azslArtifactsOutcome.GetValue(), - azslData, - srgAssets, - shaderOptionGroupLayout, - bindingDependencies, - rootConstantData); - if (azslJsonReadResult != AssetBuilderSDK::ProcessJobResult_Success) - - { - response.m_resultCode = azslJsonReadResult; - return; - } - - shaderAssetCreator.SetName(Name(azslData.m_sources->m_shaderFileName)); - shaderAssetCreator.SetDrawListName(Name(shaderAssetSource.m_drawListName)); - shaderAssetCreator.SetShaderAssetBuildTimestamp(shaderAssetBuildTimestamp); - - // The ShaderOptionGroupLayout dictates what options/range can be used to create variants - shaderAssetCreator.SetShaderOptionGroupLayout(shaderOptionGroupLayout); - - AZ_TracePrintf(ShaderAssetBuilderName, "Original AZSL File: %s \n", azslData.m_sources->m_azslSourceFullPath.c_str()); - - const uint32_t usedShaderOptionBits = shaderOptionGroupLayout->GetBitSize(); - AZ_TracePrintf(ShaderAssetBuilderName, "Note: This shader uses %u of %u available shader variant key bits. \n", usedShaderOptionBits, RPI::ShaderVariantKeyBitCount); - - // The idea of this merge is that we have compiler options coming from 2 source: - // global options (from project Config/), and .shader options. - // We define a merge behavior that is: ".shader wins if set" - RHI::ShaderCompilerArguments mergedArguments = buildOptions.m_compilerArguments; - mergedArguments.Merge(shaderAssetSource.m_compiler); - - AssetBuilderSDK::ProcessJobResultCode compileResult = - CompileForAPI( - azslArtifactsOutcome.GetValue(), - shaderAssetCreator, - shaderPlatformInterface, - response, - azslData, - mergedArguments, - shaderOptionGroupLayout, - shaderAssetSource, - shaderAssetBuildTimestamp, - srgAssets, - bindingDependencies, - rootConstantData, - request); - if (compileResult != AssetBuilderSDK::ProcessJobResult_Success) - { - response.m_resultCode = compileResult; - return; - } - ++countOfCompiledPlatformInterfaces; - } // end for all platforms - - if (!countOfCompiledPlatformInterfaces) - { - AZ_TracePrintf( - ShaderAssetBuilderName, "No azshader is produced on behalf of %s because all valid RHI backends were disabled for this shader.\n", request.m_sourceFile.c_str()); + //No work to do. Exit gracefully. + AZ_TracePrintf(ShaderAssetBuilderName, + "No azshader is produced on behalf of %s because all valid RHI backends were disabled for this shader.\n", + shaderFullPath.c_str()); response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; return; } + // Get the time stamp string as sys_time_t, and also convert back to string to make sure it was converted correctly. + AZStd::sys_time_t shaderAssetBuildTimestamp = 0; + auto shaderAssetBuildTimestampIterator = request.m_jobDescription.m_jobParameters.find(ShaderAssetBuildTimestampParam); + if (shaderAssetBuildTimestampIterator != request.m_jobDescription.m_jobParameters.end()) + { + shaderAssetBuildTimestamp = AZStd::stoull(shaderAssetBuildTimestampIterator->second); + + if (AZStd::to_string(shaderAssetBuildTimestamp) != shaderAssetBuildTimestampIterator->second) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + AZ_Assert(false, "Incorrect conversion of ShaderAssetBuildTimestampParam"); + return; + } + } + + auto supervariantList = ShaderBuilderUtility::GetSupervariantListFromShaderSourceData(shaderSourceData); + + RPI::ShaderAssetCreator shaderAssetCreator; + shaderAssetCreator.Begin(Uuid::CreateRandom()); + + shaderAssetCreator.SetName(AZ::Name{shaderFileName.c_str()}); + shaderAssetCreator.SetDrawListName(Name(shaderSourceData.m_drawListName)); + shaderAssetCreator.SetShaderAssetBuildTimestamp(shaderAssetBuildTimestamp); + + // The ShaderOptionGroupLayout must be the same across all supervariants because + // there can be only a single ShaderVariantTreeAsset per ShaderAsset. + // We will store here the one that results when the *.azslin file is + // compiled for the default, nameless, supervariant. + // For all other supervariants we just make sure the hashes are the same + // as this one. + RPI::Ptr finalShaderOptionGroupLayout = nullptr; + + + // Time to describe the big picture. + // 1- Preprocess an AZSL file with MCPP (a C-Preprocessor), and generate a flat AZSL file without #include lines and any macros in it. + // Let's call it the Flat-AZSL file. There are two levels of macro definition that need to be merged before we can invoke MCPP: + // 1.1- From /Config/shader_global_build_options.json, which we have stored in the local variable @buildOptions. + // 1.2- From the "Supervariant" definition key, which can be different for each supervariant. + // 2- There will be one Flat-AZSL per supervariant. Each Flat-AZSL will be transpiled to HLSL with AZSLc. This means there will be one HLSL file + // per supervariant. + // 3- The generated HLSL (one HLSL per supervariant) file may contain C-Preprocessor Macros inserted by AZSLc. And that file will be given to DXC. + // DXC has a preprocessor embedded in it. DXC will be executed once for each entry function listed in the .shader file. + // There will be one DXIL compiled binary for each entry function. All the DXIL compiled binaries for each supervariant will be combined + // in the ROOT ShaderVariantAsset. + + // Remark: In general, the work done by the ShaderVariantAssetBuilder is similar, but it will start from the HLSL file created; in step 2, mentioned above; by this builder, + // for each supervariant. + + // At this moment We have global build options that should be merged with the build options that are common + // to all the supervariants of this shader. + buildOptions.m_compilerArguments.Merge(shaderSourceData.m_compiler); + + for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) + { + AZStd::string apiName(shaderPlatformInterface->GetAPIName().GetCStr()); + AZ_TraceContext("Platform API", apiName); + // Signal the begin of shader data for an RHI API. + shaderAssetCreator.BeginAPI(shaderPlatformInterface->GetAPIType()); + + // Each shaderPlatformInterface has its own azsli header that needs to be prepended to the AZSL file before + // preprocessing. We will create a new temporary file that contains the combined data. + RHI::PrependArguments args; + args.m_sourceFile = azslFullPath.c_str(); + args.m_prependFile = shaderPlatformInterface->GetAzslHeader(request.m_platformInfo); + args.m_addSuffixToFileName = apiName.c_str(); + args.m_destinationFolder = request.m_tempDirPath.c_str(); + + AZStd::string prependedAzslFilePath = RHI::PrependFile(args); + if (prependedAzslFilePath == azslFullPath) + { + // The specific error is already reported by RHI::PrependFile(). + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + + // Cache common AZSLC invokation arguments related with the current RHI Backend. + // Each supervariant can, optionally, remove or add more arguments for AZSLc. + AZStd::string commonAzslcCompilerParameters = + shaderPlatformInterface->GetAzslCompilerParameters(buildOptions.m_compilerArguments); + commonAzslcCompilerParameters += " "; + commonAzslcCompilerParameters += + shaderPlatformInterface->GetAzslCompilerWarningParameters(buildOptions.m_compilerArguments); + AtomShaderConfig::AddParametersFromConfigFile(commonAzslcCompilerParameters, request.m_platformInfo); + + // The register number only makes sense if the platform uses "spaces", + // since the register Id of the resource will not change even if the pipeline layout changes. + // We can pass in a default ShaderCompilerArguments because all we care about is whether the shaderPlatformInterface + // appends the "--use-spaces" flag. + const bool platformUsesRegisterSpaces = + (AzFramework::StringFunc::Find(commonAzslcCompilerParameters, "--use-spaces") != AZStd::string::npos); + + uint32_t supervariantIndex = 0; + for (const auto& supervariantInfo : supervariantList) + { + AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); + if (jobCancelListener.IsCancelled()) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; + return; + } + + shaderAssetCreator.BeginSupervariant(supervariantInfo.m_name); + + // Let's combine the global macro definitions, with the macro definitions particular to this + // supervariant. Two steps: + // 1- Supervariants can specify which macros to remove from the global definitions. + AZStd::vector macroDefinitionNamesToRemove = supervariantInfo.GetCombinedListOfMacroDefinitionNamesToRemove(); + PreprocessorOptions preprocessorOptions = buildOptions.m_preprocessorSettings; + preprocessorOptions.RemovePredefinedMacros(macroDefinitionNamesToRemove); + // 2- Supervariants can specify which macros to add. + AZStd::vector macroDefinitionsToAdd = supervariantInfo.GetMacroDefinitionsToAdd(); + preprocessorOptions.m_predefinedMacros.insert( + preprocessorOptions.m_predefinedMacros.end(), macroDefinitionsToAdd.begin(), macroDefinitionsToAdd.end()); + // Run the preprocessor. + PreprocessorData output; + PreprocessFile(prependedAzslFilePath, output, preprocessorOptions, true, true); + RHI::ReportErrorMessages(ShaderAssetBuilderName, output.diagnostics); + // Dump the preprocessed string as a flat AZSL file with extension .azslin, which will be given to AZSLc to generate the HLSL file. + AZStd::string superVariantAzslinStemName = shaderFileName; + if (!supervariantInfo.m_name.IsEmpty()) + { + superVariantAzslinStemName += AZStd::string::format("-%s", supervariantInfo.m_name.GetCStr()); + } + AZStd::string azslinFullPath = ShaderBuilderUtility::DumpPreprocessedCode( + ShaderAssetBuilderName, output.code, request.m_tempDirPath, superVariantAzslinStemName, + apiName); + if (azslinFullPath.empty()) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + AZ_TracePrintf(ShaderAssetBuilderName, "Preprocessed AZSL File: %s \n", prependedAzslFilePath.c_str()); + + // Before transpiling the flat-AZSL(.azslin) file into HLSL it is necessary + // to setup the AZSLc arguments as required by the current supervariant. + AZStd::string azslcCompilerParameters = supervariantInfo.GetCustomizedArgumentsForAzslc(commonAzslcCompilerParameters); + + // Ready to transpile the azslin file into HLSL. + ShaderBuilder::AzslCompiler azslc(azslinFullPath); + AZStd::string hlslFullPath = AZStd::string::format("%s_%s.hlsl", superVariantAzslinStemName.c_str(), apiName.c_str()); + AzFramework::StringFunc::Path::Join(request.m_tempDirPath.c_str(), hlslFullPath.c_str(), hlslFullPath, true); + auto emitFullOutcome = azslc.EmitFullData(azslcCompilerParameters, hlslFullPath); + if (!emitFullOutcome.IsSuccess()) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + ShaderBuilderUtility::AzslSubProducts::Paths subProductsPaths = emitFullOutcome.TakeValue(); + + // In addition to the hlsl file, there are other json files that were generated. + // Each output file will become a product. + for (int i = 0; i < subProductsPaths.size(); ++i) + { + AssetBuilderSDK::JobProduct jobProduct; + jobProduct.m_productFileName = subProductsPaths[i]; + static const AZ::Uuid AzslOutcomeType = "{6977AEB1-17AD-4992-957B-23BB2E85B18B}"; + jobProduct.m_productAssetType = AzslOutcomeType; + // uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, uint32_t subProductType + jobProduct.m_productSubID = RPI::ShaderAsset::MakeProductAssetSubId( + shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex, + aznumeric_cast(ShaderBuilderUtility::AzslSubProducts::SubList[i])); + jobProduct.m_dependenciesHandled = true; + // Note that the output products are not traditional product assets that will be used by the game project. + // They are artifacts that are produced once, cached, and used later by other AssetBuilders as a way to centralize + // build organization. + response.m_outputProducts.push_back(AZStd::move(jobProduct)); + } + + AZStd::shared_ptr files(new ShaderFiles); + AzslData azslData(files); + azslData.m_preprocessedFullPath = azslinFullPath; + RPI::ShaderResourceGroupLayoutList srgLayoutList; + RPI::Ptr shaderOptionGroupLayout = RPI::ShaderOptionGroupLayout::Create(); + BindingDependencies bindingDependencies; + RootConstantData rootConstantData; + AssetBuilderSDK::ProcessJobResultCode azslJsonReadResult = ShaderBuilderUtility::PopulateAzslDataFromJsonFiles( + ShaderAssetBuilderName, subProductsPaths, platformUsesRegisterSpaces, azslData, srgLayoutList, shaderOptionGroupLayout, + bindingDependencies, rootConstantData); + if (azslJsonReadResult != AssetBuilderSDK::ProcessJobResult_Success) + + { + response.m_resultCode = azslJsonReadResult; + return; + } + + shaderAssetCreator.SetSrgLayoutList(srgLayoutList); + + if (!finalShaderOptionGroupLayout) + { + finalShaderOptionGroupLayout = shaderOptionGroupLayout; + shaderAssetCreator.SetShaderOptionGroupLayout(finalShaderOptionGroupLayout); + const uint32_t usedShaderOptionBits = shaderOptionGroupLayout->GetBitSize(); + AZ_TracePrintf( + ShaderAssetBuilderName, "Note: This shader uses %u of %u available shader variant key bits. \n", + usedShaderOptionBits, RPI::ShaderVariantKeyBitCount); + } + else + { + if (finalShaderOptionGroupLayout->GetHash() != shaderOptionGroupLayout->GetHash()) + { + AZ_Error( + ShaderAssetBuilderName, false, "Supervariant %s has a different ShaderOptionGroupLayout", + supervariantInfo.m_name.GetCStr()) + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + } + + // Discover entry points & type of programs. + MapOfStringToStageType shaderEntryPoints; + if (shaderSourceData.m_programSettings.m_entryPoints.empty()) + { + AZ_TracePrintf( + ShaderAssetBuilderName, + "ProgramSettings do not specify entry points, will use GetDefaultEntryPointsFromShader()\n"); + ShaderBuilderUtility::GetDefaultEntryPointsFromFunctionDataList(azslData.m_functions, shaderEntryPoints); + } + else + { + for (const auto& entryPoint : shaderSourceData.m_programSettings.m_entryPoints) + { + shaderEntryPoints[entryPoint.m_name] = entryPoint.m_type; + } + } + + bool hasRasterProgram = false; + auto attributeMapsOutcome = BuildAttributesMap(shaderPlatformInterface, azslData, shaderEntryPoints, hasRasterProgram); + if (!attributeMapsOutcome.IsSuccess()) + { + AZ_Error(ShaderAssetBuilderName, false, "%s\n", attributeMapsOutcome.GetError().c_str()); + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + shaderAssetCreator.SetShaderStageAttributeMapList(attributeMapsOutcome.TakeValue()); + + // Check if we were canceled before we do any heavy processing of + // the shader data (compiling the shader kernels, processing SRG + // and pipeline layout data, etc.). + if (jobCancelListener.IsCancelled()) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; + return; + } + + RHI::Ptr pipelineLayoutDescriptor = + ShaderBuilderUtility::BuildPipelineLayoutDescriptorForApi( + ShaderAssetBuilderName, srgLayoutList, shaderEntryPoints, buildOptions.m_compilerArguments, rootConstantData, + shaderPlatformInterface, bindingDependencies); + if (!pipelineLayoutDescriptor) + { + AZ_Error( + ShaderAssetBuilderName, false, "Failed to build pipeline layout descriptor for api=[%s]", + shaderPlatformInterface->GetAPIName().GetCStr()); + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + + shaderAssetCreator.SetPipelineLayout(pipelineLayoutDescriptor); + + + RPI::ShaderInputContract shaderInputContract; + RPI::ShaderOutputContract shaderOutputContract; + size_t colorAttachmentCount = 0; + ShaderBuilderUtility::CreateShaderInputAndOutputContracts( + azslData, shaderEntryPoints, *shaderOptionGroupLayout.get(), + subProductsPaths[ShaderBuilderUtility::AzslSubProducts::om], + subProductsPaths[ShaderBuilderUtility::AzslSubProducts::ia], + shaderInputContract, shaderOutputContract, colorAttachmentCount); + shaderAssetCreator.SetInputContract(shaderInputContract); + shaderAssetCreator.SetOutputContract(shaderOutputContract); + + if (hasRasterProgram) + { + // Set the various states to what is in the descriptor. + const RHI::TargetBlendState& targetBlendState = shaderSourceData.m_blendState; + RHI::RenderStates renderStates; + renderStates.m_rasterState = shaderSourceData.m_rasterState; + renderStates.m_depthStencilState = shaderSourceData.m_depthStencilState; + // [GFX TODO][ATOM-930] We should support unique blend states per RT + for (size_t i = 0; i < colorAttachmentCount; ++i) + { + renderStates.m_blendState.m_targets[i] = targetBlendState; + } + + shaderAssetCreator.SetRenderStates(renderStates); + } + + Outcome hlslSourceCodeOutcome = Utils::ReadFile(hlslFullPath); + if (!hlslSourceCodeOutcome.IsSuccess()) + { + AZ_Error( + ShaderAssetBuilderName, false, "Failed to obtain shader source from %s. [%s]", hlslFullPath.c_str(), + hlslSourceCodeOutcome.GetError().c_str()); + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + AZStd::string hlslSourceCode = hlslSourceCodeOutcome.TakeValue(); + + // The root ShaderVariantAsset needs to be created with the known uuid of the source .shader asset because + // the ShaderAsset owns a Data::Asset<> reference that gets serialized. It must have the correct uuid + // so the root ShaderVariantAsset is found when the ShaderAsset is deserialized. + uint32_t rootVariantProductSubId = RPI::ShaderAsset::MakeProductAssetSubId( + shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex, + aznumeric_cast(RPI::ShaderAssetSubId::RootShaderVariantAsset)); + auto assetIdOutcome = RPI::AssetUtils::MakeAssetId(shaderFullPath, rootVariantProductSubId); + AZ_Assert(assetIdOutcome.IsSuccess(), "Failed to get AssetId from shader %s", shaderFullPath.c_str()); + const Data::AssetId variantAssetId = assetIdOutcome.TakeValue(); + + RPI::ShaderVariantListSourceData::VariantInfo rootVariantInfo; + ShaderVariantCreationContext shaderVariantCreationContext = { + *shaderPlatformInterface, + request.m_platformInfo, + buildOptions.m_compilerArguments, + request.m_tempDirPath, + startTime, + shaderSourceData, + *shaderOptionGroupLayout.get(), + shaderEntryPoints, + variantAssetId, + superVariantAzslinStemName, + hlslFullPath, + hlslSourceCode}; + + + AZStd::optional outputByproducts; + auto rootShaderVariantAssetOutcome = ShaderVariantAssetBuilder::CreateShaderVariantAsset(rootVariantInfo, shaderVariantCreationContext, outputByproducts); + if (!rootShaderVariantAssetOutcome.IsSuccess()) + { + AZ_Error(ShaderAssetBuilderName, false, "%s\n", rootShaderVariantAssetOutcome.GetError().c_str()) + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + Data::Asset rootShaderVariantAsset = rootShaderVariantAssetOutcome.TakeValue(); + + shaderAssetCreator.SetRootShaderVariantAsset(rootShaderVariantAsset); + + if (!shaderAssetCreator.EndSupervariant()) + { + AZ_Error( + ShaderAssetBuilderName, false, "Failed to create shader asset for supervariant [%s]", supervariantInfo.m_name.GetCStr()) + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + + // Time to save the root variant related assets in the cache. + AssetBuilderSDK::JobProduct assetProduct; + if (!ShaderVariantAssetBuilder::SerializeOutShaderVariantAsset( + rootShaderVariantAsset, superVariantAzslinStemName, request.m_tempDirPath, *shaderPlatformInterface, + rootVariantProductSubId, + assetProduct)) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + response.m_outputProducts.push_back(assetProduct); + + if (outputByproducts) + { + // add byproducts as job output products: + uint32_t subProductType = aznumeric_cast(RPI::ShaderAssetSubId::FirstByProduct); + for (const AZStd::string& byproduct : outputByproducts.value().m_intermediatePaths) + { + AssetBuilderSDK::JobProduct jobProduct; + jobProduct.m_productFileName = byproduct; + jobProduct.m_productAssetType = Uuid::CreateName("DebugInfoByProduct-PdbOrDxilTxt"); + jobProduct.m_productSubID = RPI::ShaderAsset::MakeProductAssetSubId( + shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex, + subProductType++); + response.m_outputProducts.push_back(AZStd::move(jobProduct)); + } + } + + + supervariantIndex++; + + } // end for the supervariant + + shaderAssetCreator.EndAPI(); + + } // end for all ShaderPlatformInterfaces + Data::Asset shaderAsset; if (!shaderAssetCreator.End(shaderAsset)) { response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; return; } - + if (!SerializeOutShaderAsset(shaderAsset, request.m_tempDirPath, response)) { response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; return; } - + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - + const AZStd::sys_time_t endTime = AZStd::GetTimeNowTicks(); const AZStd::sys_time_t deltaTime = endTime - startTime; const float elapsedTimeSeconds = (float)(deltaTime) / (float)AZStd::GetTimeTicksPerSecond(); - + AZ_TracePrintf(ShaderAssetBuilderName, "Finished processing %s in %.2f seconds\n", request.m_sourceFile.c_str(), elapsedTimeSeconds); - - ShaderBuilderUtility::LogProfilingData(ShaderAssetBuilderName, inputFiles->m_azslFileName); + + ShaderBuilderUtility::LogProfilingData(ShaderAssetBuilderName, shaderFileName); } } // ShaderBuilder diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder.h index 0be043a3eb..2f1eab202f 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder.h +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder.h @@ -38,7 +38,7 @@ namespace AZ : public AssetBuilderSDK::AssetBuilderCommandBus::Handler { public: - AZ_TYPE_INFO(ShaderAssetBuilder, "{AEC304A9-940C-4851-AEF0-7D00482598F9}"); + AZ_TYPE_INFO(ShaderAssetBuilder, "{C94DA151-82BC-4475-86FA-E6C92A0BD6F8}"); static constexpr const char* ShaderAssetBuilderJobKey = "Shader Asset"; diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.cpp deleted file mode 100644 index 5758db1da2..0000000000 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.cpp +++ /dev/null @@ -1,683 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -*/ - -#include "ShaderAssetBuilder2.h" - -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "AzslBuilder.h" -#include "ShaderVariantAssetBuilder2.h" -#include "ShaderBuilderUtility.h" -#include "ShaderPlatformInterfaceRequest.h" -#include "AtomShaderConfig.h" - -#include -#include -namespace AZ -{ - namespace ShaderBuilder - { - static constexpr char ShaderAssetBuilder2Name[] = "ShaderAssetBuilder2"; - static constexpr uint32_t ShaderAssetBuildTimestampParam = 0; - - void ShaderAssetBuilder2::CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const - { - AZStd::string fullPath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.data(), request.m_sourceFile.data(), fullPath, true); - - AZ_TracePrintf(ShaderAssetBuilder2Name, "CreateJobs for Shader \"%s\"\n", fullPath.data()); - - // Used to synchronize versions of the ShaderAsset and ShaderVariantTreeAsset, especially during hot-reload. - // Note it's probably important for this to be set once outside the platform loop so every platform's ShaderAsset - // has the same value, because later the ShaderVariantTreeAsset job will fetch this value from the local ShaderAsset - // which could cross platforms (i.e. building an android ShaderVariantTreeAsset on PC would fetch the tiemstamp from - // the PC's ShaderAsset). - AZStd::sys_time_t shaderAssetBuildTimestamp = AZStd::GetTimeNowMicroSecond(); - - // Need to get the name of the azsl file from the .shader source asset, to be able to declare a dependency to SRG Layout Job. - // and the macro options to preprocess. - auto descriptorParseOutcome = ShaderBuilderUtility::LoadShaderDataJson(fullPath); - if (!descriptorParseOutcome.IsSuccess()) - { - AZ_Error( - ShaderAssetBuilder2Name, false, "Failed to parse Shader Descriptor JSON: %s", - descriptorParseOutcome.GetError().c_str()); - return; - } - - RPI::ShaderSourceData shaderSourceData = descriptorParseOutcome.TakeValue(); - - AZStd::string azslFullPath; - ShaderBuilderUtility::GetAbsolutePathToAzslFile(fullPath, shaderSourceData.m_source, azslFullPath); - if (!IO::FileIOBase::GetInstance()->Exists(azslFullPath.c_str())) - { - AZ_Error( - ShaderAssetBuilder2Name, false, "Shader program listed as the source entry does not exist: %s.", azslFullPath.c_str()); - response.m_result = AssetBuilderSDK::CreateJobsResultCode::Failed; - return; - } - - - GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderAssetBuilder2Name); - - // [GFX TODO] [ATOM-14966] In principle, based on macro definitions, included files can change per supervariant. - // So, the list of source asset dependencies must be collected by running MCPP on each supervariant. - // For now, we will run MCPP only once because CreateJobs() should be as light as possible. - // - // Regardless of the PlatformInfo and enabled ShaderPlatformInterfaces, the azsl file will be preprocessed - // with the sole purpose of extracting all included files. For each included file a SourceDependency will be declared. - PreprocessorData output; - buildOptions.m_compilerArguments.Merge(shaderSourceData.m_compiler); - PreprocessFile(azslFullPath, output, buildOptions.m_preprocessorSettings, true, true); - for (auto includePath : output.includedPaths) - { - // m_sourceFileDependencyList does not support paths with "." or ".." for relative lookup, but the preprocessor - // may produce path strings like "C:/a/b/c/../../d/file.azsli" so we have to normalize - AzFramework::StringFunc::Path::Normalize(includePath); - - AssetBuilderSDK::SourceFileDependency includeFileDependency; - includeFileDependency.m_sourceFileDependencyPath = includePath; - response.m_sourceFileDependencyList.emplace_back(includeFileDependency); - } - - { - // Add the AZSL as source dependency - AssetBuilderSDK::SourceFileDependency azslFileDependency; - azslFileDependency.m_sourceFileDependencyPath = azslFullPath; - response.m_sourceFileDependencyList.emplace_back(azslFileDependency); - } - - for (const AssetBuilderSDK::PlatformInfo& platformInfo : request.m_enabledPlatforms) - { - AZ_TraceContext("For platform", platformInfo.m_identifier.data()); - - // Get the platform interfaces to be able to access the prepend file - AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverValidShaderPlatformInterfaces(platformInfo); - if (platformInterfaces.empty()) - { - continue; - } - - AssetBuilderSDK::JobDescriptor jobDescriptor; - jobDescriptor.m_priority = 2; - // [GFX TODO][ATOM-2830] Set 'm_critical' back to 'false' once proper fix for Atom startup issues are in - jobDescriptor.m_critical = true; - jobDescriptor.m_jobKey = ShaderAssetBuilder2JobKey; - jobDescriptor.SetPlatformIdentifier(platformInfo.m_identifier.c_str()); - jobDescriptor.m_jobParameters.emplace(ShaderAssetBuildTimestampParam, AZStd::to_string(shaderAssetBuildTimestamp)); - - response.m_createJobOutputs.push_back(jobDescriptor); - } // for all request.m_enabledPlatforms - - response.m_result = AssetBuilderSDK::CreateJobsResultCode::Success; - } - - static bool SerializeOutShaderAsset(Data::Asset shaderAsset, - const AZStd::string& tempDirPath, - AssetBuilderSDK::ProcessJobResponse& response) - { - AZStd::string shaderAssetFileName = AZStd::string::format("%s.%s", shaderAsset->GetName().GetCStr(), RPI::ShaderAsset2::Extension); - AZStd::string shaderAssetOutputPath; - AzFramework::StringFunc::Path::ConstructFull(tempDirPath.data(), shaderAssetFileName.data(), shaderAssetOutputPath, true); - - if (!Utils::SaveObjectToFile(shaderAssetOutputPath, DataStream::ST_BINARY, shaderAsset.Get())) - { - AZ_Error(ShaderAssetBuilder2Name, false, "Failed to output Shader Descriptor"); - return false; - } - - AssetBuilderSDK::JobProduct shaderJobProduct; - if (!AssetBuilderSDK::OutputObject(shaderAsset.Get(), shaderAssetOutputPath, azrtti_typeid(), - aznumeric_cast(RPI::ShaderAsset2ProductSubId::ShaderAsset2), shaderJobProduct)) - { - AZ_Error(ShaderAssetBuilder2Name, false, "Failed to output product dependencies."); - return false; - } - response.m_outputProducts.push_back(AZStd::move(shaderJobProduct)); - - return true; - } - - static AZ::Outcome BuildAttributesMap( - const RHI::ShaderPlatformInterface* shaderPlatformInterface, - const AzslData& azslData, - const MapOfStringToStageType& shaderEntryPoints, - bool& hasRasterProgram) - { - hasRasterProgram = false; - bool hasComputeProgram = false; - bool hasRayTracingProgram = false; - RHI::ShaderStageAttributeMapList attributeMaps; - attributeMaps.resize(RHI::ShaderStageCount); - for (const auto& shaderEntryPoint : shaderEntryPoints) - { - auto shaderEntryName = shaderEntryPoint.first; - auto shaderStageType = shaderEntryPoint.second; - auto assetBuilderShaderType = ShaderBuilderUtility::ToAssetBuilderShaderType(shaderStageType); - hasRasterProgram |= shaderPlatformInterface->IsShaderStageForRaster(assetBuilderShaderType); - hasComputeProgram |= shaderPlatformInterface->IsShaderStageForCompute(assetBuilderShaderType); - hasRayTracingProgram |= shaderPlatformInterface->IsShaderStageForRayTracing(assetBuilderShaderType); - - auto findId = AZStd::find_if(AZ_BEGIN_END(azslData.m_functions), [&shaderEntryPoint](const auto& func) { - return func.m_name == shaderEntryPoint.first; - }); - - if (findId == azslData.m_functions.end()) - { - // shaderData.m_functions only contains Vertex, Fragment and Compute entries for now - // Tessellation shaders will need to be handled too - continue; - } - - const auto shaderStage = ToRHIShaderStage(assetBuilderShaderType); - for (const auto& attr : findId->attributesList) - { - // Some stages like RHI::ShaderStage::Tessellation are compound and consist of two or more shader entries - const Name& attributeName = attr.first; - const RHI::ShaderStageAttributeArguments& args = attr.second; - const auto stageIndex = static_cast(shaderStage); - AZ_Assert(stageIndex < RHI::ShaderStageCount, "Invalid shader stage specified!"); - attributeMaps[stageIndex][attributeName] = args; - } - } - - if (hasRasterProgram && hasComputeProgram) - { - return AZ::Failure(AZStd::string(" Shader asset descriptor defines both a raster entry point and a compute entry point.")); - } - - if (!hasRasterProgram && !hasComputeProgram && !hasRayTracingProgram) - { - AZStd::string entryPointNames = ShaderBuilderUtility::GetAcceptableDefaultEntryPointNames(azslData); - return AZ::Failure( - AZStd::string::format( "Shader asset descriptor has a program variant that does not define any entry points. Either declare entry " - "points in the .shader file, or use one of the available default names (not case-sensitive): [%s]", - entryPointNames.c_str())); - } - - return AZ::Success(attributeMaps); - } - - void ShaderAssetBuilder2::ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const - { - const AZStd::sys_time_t startTime = AZStd::GetTimeNowTicks(); - AZStd::string shaderFullPath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.c_str(), request.m_sourceFile.c_str(), shaderFullPath, true); - // Save .shader file name (no extension and no parent directory path) - AZStd::string shaderFileName; - AzFramework::StringFunc::Path::GetFileName(request.m_sourceFile.c_str(), shaderFileName); - - // No error checking because the same calls were already executed during CreateJobs() - auto descriptorParseOutcome = ShaderBuilderUtility::LoadShaderDataJson(shaderFullPath); - RPI::ShaderSourceData shaderSourceData = descriptorParseOutcome.TakeValue(); - AZStd::string azslFullPath; - ShaderBuilderUtility::GetAbsolutePathToAzslFile(shaderFullPath, shaderSourceData.m_source, azslFullPath); - AZ_TracePrintf(ShaderAssetBuilder2Name, "Original AZSL File: %s \n", azslFullPath.c_str()); - - // The directory where the Azsl file was found must be added to the list of include paths - AZStd::string azslFolderPath; - AzFramework::StringFunc::Path::GetFolderPath(azslFullPath.c_str(), azslFolderPath); - GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderAssetBuilder2Name, azslFolderPath.c_str()); - - // Request the list of valid shader platform interfaces for the target platform. - AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverEnabledShaderPlatformInterfaces( - request.m_platformInfo, shaderSourceData); - if (platformInterfaces.empty()) - { - //No work to do. Exit gracefully. - AZ_TracePrintf(ShaderAssetBuilder2Name, - "No azshader is produced on behalf of %s because all valid RHI backends were disabled for this shader.\n", - shaderFullPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - return; - } - - // Get the time stamp string as sys_time_t, and also convert back to string to make sure it was converted correctly. - AZStd::sys_time_t shaderAssetBuildTimestamp = 0; - auto shaderAssetBuildTimestampIterator = request.m_jobDescription.m_jobParameters.find(ShaderAssetBuildTimestampParam); - if (shaderAssetBuildTimestampIterator != request.m_jobDescription.m_jobParameters.end()) - { - shaderAssetBuildTimestamp = AZStd::stoull(shaderAssetBuildTimestampIterator->second); - - if (AZStd::to_string(shaderAssetBuildTimestamp) != shaderAssetBuildTimestampIterator->second) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - AZ_Assert(false, "Incorrect conversion of ShaderAssetBuildTimestampParam"); - return; - } - } - - auto supervariantList = ShaderBuilderUtility::GetSupervariantListFromShaderSourceData(shaderSourceData); - - RPI::ShaderAssetCreator2 shaderAssetCreator; - shaderAssetCreator.Begin(Uuid::CreateRandom()); - - shaderAssetCreator.SetName(AZ::Name{shaderFileName.c_str()}); - shaderAssetCreator.SetDrawListName(Name(shaderSourceData.m_drawListName)); - shaderAssetCreator.SetShaderAssetBuildTimestamp(shaderAssetBuildTimestamp); - - // The ShaderOptionGroupLayout must be the same across all supervariants because - // there can be only a single ShaderVariantTreeAsset per ShaderAsset. - // We will store here the one that results when the *.azslin file is - // compiled for the default, nameless, supervariant. - // For all other supervariants we just make sure the hashes are the same - // as this one. - RPI::Ptr finalShaderOptionGroupLayout = nullptr; - - - // Time to describe the big picture. - // 1- Preprocess an AZSL file with MCPP (a C-Preprocessor), and generate a flat AZSL file without #include lines and any macros in it. - // Let's call it the Flat-AZSL file. There are two levels of macro definition that need to be merged before we can invoke MCPP: - // 1.1- From /Config/shader_global_build_options.json, which we have stored in the local variable @buildOptions. - // 1.2- From the "Supervariant" definition key, which can be different for each supervariant. - // 2- There will be one Flat-AZSL per supervariant. Each Flat-AZSL will be transpiled to HLSL with AZSLc. This means there will be one HLSL file - // per supervariant. - // 3- The generated HLSL (one HLSL per supervariant) file may contain C-Preprocessor Macros inserted by AZSLc. And that file will be given to DXC. - // DXC has a preprocessor embedded in it. DXC will be executed once for each entry function listed in the .shader file. - // There will be one DXIL compiled binary for each entry function. All the DXIL compiled binaries for each supervariant will be combined - // in the ROOT ShaderVariantAsset. - - // Remark: In general, the work done by the ShaderVariantAssetBuilder is similar, but it will start from the HLSL file created; in step 2, mentioned above; by this builder, - // for each supervariant. - - // At this moment We have global build options that should be merged with the build options that are common - // to all the supervariants of this shader. - buildOptions.m_compilerArguments.Merge(shaderSourceData.m_compiler); - - for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) - { - AZStd::string apiName(shaderPlatformInterface->GetAPIName().GetCStr()); - AZ_TraceContext("Platform API", apiName); - // Signal the begin of shader data for an RHI API. - shaderAssetCreator.BeginAPI(shaderPlatformInterface->GetAPIType()); - - // Each shaderPlatformInterface has its own azsli header that needs to be prepended to the AZSL file before - // preprocessing. We will create a new temporary file that contains the combined data. - RHI::PrependArguments args; - args.m_sourceFile = azslFullPath.c_str(); - args.m_prependFile = shaderPlatformInterface->GetAzslHeader(request.m_platformInfo); - args.m_addSuffixToFileName = apiName.c_str(); - args.m_destinationFolder = request.m_tempDirPath.c_str(); - - AZStd::string prependedAzslFilePath = RHI::PrependFile(args); - if (prependedAzslFilePath == azslFullPath) - { - // The specific error is already reported by RHI::PrependFile(). - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - // Cache common AZSLC invokation arguments related with the current RHI Backend. - // Each supervariant can, optionally, remove or add more arguments for AZSLc. - AZStd::string commonAzslcCompilerParameters = - shaderPlatformInterface->GetAzslCompilerParameters(buildOptions.m_compilerArguments); - commonAzslcCompilerParameters += " "; - commonAzslcCompilerParameters += - shaderPlatformInterface->GetAzslCompilerWarningParameters(buildOptions.m_compilerArguments); - AtomShaderConfig::AddParametersFromConfigFile(commonAzslcCompilerParameters, request.m_platformInfo); - - // The register number only makes sense if the platform uses "spaces", - // since the register Id of the resource will not change even if the pipeline layout changes. - // We can pass in a default ShaderCompilerArguments because all we care about is whether the shaderPlatformInterface - // appends the "--use-spaces" flag. - const bool platformUsesRegisterSpaces = - (AzFramework::StringFunc::Find(commonAzslcCompilerParameters, "--use-spaces") != AZStd::string::npos); - - uint32_t supervariantIndex = 0; - for (const auto& supervariantInfo : supervariantList) - { - AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); - if (jobCancelListener.IsCancelled()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; - return; - } - - shaderAssetCreator.BeginSupervariant(supervariantInfo.m_name); - - // Let's combine the global macro definitions, with the macro definitions particular to this - // supervariant. Two steps: - // 1- Supervariants can specify which macros to remove from the global definitions. - AZStd::vector macroDefinitionNamesToRemove = supervariantInfo.GetCombinedListOfMacroDefinitionNamesToRemove(); - PreprocessorOptions preprocessorOptions = buildOptions.m_preprocessorSettings; - preprocessorOptions.RemovePredefinedMacros(macroDefinitionNamesToRemove); - // 2- Supervariants can specify which macros to add. - AZStd::vector macroDefinitionsToAdd = supervariantInfo.GetMacroDefinitionsToAdd(); - preprocessorOptions.m_predefinedMacros.insert( - preprocessorOptions.m_predefinedMacros.end(), macroDefinitionsToAdd.begin(), macroDefinitionsToAdd.end()); - // Run the preprocessor. - PreprocessorData output; - PreprocessFile(prependedAzslFilePath, output, preprocessorOptions, true, true); - RHI::ReportErrorMessages(ShaderAssetBuilder2Name, output.diagnostics); - // Dump the preprocessed string as a flat AZSL file with extension .azslin, which will be given to AZSLc to generate the HLSL file. - AZStd::string superVariantAzslinStemName = shaderFileName; - if (!supervariantInfo.m_name.IsEmpty()) - { - superVariantAzslinStemName += AZStd::string::format("-%s", supervariantInfo.m_name.GetCStr()); - } - AZStd::string azslinFullPath = ShaderBuilderUtility::DumpPreprocessedCode( - ShaderAssetBuilder2Name, output.code, request.m_tempDirPath, superVariantAzslinStemName, - apiName, true /*add2*/); - if (azslinFullPath.empty()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - AZ_TracePrintf(ShaderAssetBuilder2Name, "Preprocessed AZSL File: %s \n", prependedAzslFilePath.c_str()); - - // Before transpiling the flat-AZSL(.azslin) file into HLSL it is necessary - // to setup the AZSLc arguments as required by the current supervariant. - AZStd::string azslcCompilerParameters = supervariantInfo.GetCustomizedArgumentsForAzslc(commonAzslcCompilerParameters); - - // Ready to transpile the azslin file into HLSL. - ShaderBuilder::AzslCompiler azslc(azslinFullPath); - AZStd::string hlslFullPath = AZStd::string::format("%s_%s.hlsl2", superVariantAzslinStemName.c_str(), apiName.c_str()); - AzFramework::StringFunc::Path::Join(request.m_tempDirPath.c_str(), hlslFullPath.c_str(), hlslFullPath, true); - auto emitFullOutcome = azslc.EmitFullData(azslcCompilerParameters, hlslFullPath, "2"); - if (!emitFullOutcome.IsSuccess()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - ShaderBuilderUtility::AzslSubProducts::Paths subProductsPaths = emitFullOutcome.TakeValue(); - - // In addition to the hlsl file, there are other json files that were generated. - // Each output file will become a product. - for (int i = 0; i < subProductsPaths.size(); ++i) - { - AssetBuilderSDK::JobProduct jobProduct; - jobProduct.m_productFileName = subProductsPaths[i]; - static const AZ::Uuid AzslOutcomeType = "{6977AEB1-17AD-4992-957B-23BB2E85B18B}"; - jobProduct.m_productAssetType = AzslOutcomeType; - // uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, uint32_t subProductType - jobProduct.m_productSubID = RPI::ShaderAsset2::MakeProductAssetSubId( - shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex, - aznumeric_cast(ShaderBuilderUtility::AzslSubProducts::SubList[i])); - jobProduct.m_dependenciesHandled = true; - // Note that the output products are not traditional product assets that will be used by the game project. - // They are artifacts that are produced once, cached, and used later by other AssetBuilders as a way to centralize - // build organization. - response.m_outputProducts.push_back(AZStd::move(jobProduct)); - } - - AZStd::shared_ptr files(new ShaderFiles); - AzslData azslData(files); - azslData.m_preprocessedFullPath = azslinFullPath; - RPI::ShaderResourceGroupLayoutList srgLayoutList; - RPI::Ptr shaderOptionGroupLayout = RPI::ShaderOptionGroupLayout::Create(); - BindingDependencies bindingDependencies; - RootConstantData rootConstantData; - AssetBuilderSDK::ProcessJobResultCode azslJsonReadResult = ShaderBuilderUtility::PopulateAzslDataFromJsonFiles( - ShaderAssetBuilder2Name, subProductsPaths, platformUsesRegisterSpaces, azslData, srgLayoutList, shaderOptionGroupLayout, - bindingDependencies, rootConstantData); - if (azslJsonReadResult != AssetBuilderSDK::ProcessJobResult_Success) - - { - response.m_resultCode = azslJsonReadResult; - return; - } - - shaderAssetCreator.SetSrgLayoutList(srgLayoutList); - - if (!finalShaderOptionGroupLayout) - { - finalShaderOptionGroupLayout = shaderOptionGroupLayout; - shaderAssetCreator.SetShaderOptionGroupLayout(finalShaderOptionGroupLayout); - const uint32_t usedShaderOptionBits = shaderOptionGroupLayout->GetBitSize(); - AZ_TracePrintf( - ShaderAssetBuilder2Name, "Note: This shader uses %u of %u available shader variant key bits. \n", - usedShaderOptionBits, RPI::ShaderVariantKeyBitCount); - } - else - { - if (finalShaderOptionGroupLayout->GetHash() != shaderOptionGroupLayout->GetHash()) - { - AZ_Error( - ShaderAssetBuilder2Name, false, "Supervariant %s has a different ShaderOptionGroupLayout", - supervariantInfo.m_name.GetCStr()) - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - } - - // Discover entry points & type of programs. - MapOfStringToStageType shaderEntryPoints; - if (shaderSourceData.m_programSettings.m_entryPoints.empty()) - { - AZ_TracePrintf( - ShaderAssetBuilder2Name, - "ProgramSettings do not specify entry points, will use GetDefaultEntryPointsFromShader()\n"); - ShaderBuilderUtility::GetDefaultEntryPointsFromFunctionDataList(azslData.m_functions, shaderEntryPoints); - } - else - { - for (const auto& entryPoint : shaderSourceData.m_programSettings.m_entryPoints) - { - shaderEntryPoints[entryPoint.m_name] = entryPoint.m_type; - } - } - - bool hasRasterProgram = false; - auto attributeMapsOutcome = BuildAttributesMap(shaderPlatformInterface, azslData, shaderEntryPoints, hasRasterProgram); - if (!attributeMapsOutcome.IsSuccess()) - { - AZ_Error(ShaderAssetBuilder2Name, false, "%s\n", attributeMapsOutcome.GetError().c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - shaderAssetCreator.SetShaderStageAttributeMapList(attributeMapsOutcome.TakeValue()); - - // Check if we were canceled before we do any heavy processing of - // the shader data (compiling the shader kernels, processing SRG - // and pipeline layout data, etc.). - if (jobCancelListener.IsCancelled()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; - return; - } - - RHI::Ptr pipelineLayoutDescriptor = - ShaderBuilderUtility::BuildPipelineLayoutDescriptorForApi( - ShaderAssetBuilder2Name, srgLayoutList, shaderEntryPoints, buildOptions.m_compilerArguments, rootConstantData, - shaderPlatformInterface, bindingDependencies); - if (!pipelineLayoutDescriptor) - { - AZ_Error( - ShaderAssetBuilder2Name, false, "Failed to build pipeline layout descriptor for api=[%s]", - shaderPlatformInterface->GetAPIName().GetCStr()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - shaderAssetCreator.SetPipelineLayout(pipelineLayoutDescriptor); - - - RPI::ShaderInputContract shaderInputContract; - RPI::ShaderOutputContract shaderOutputContract; - size_t colorAttachmentCount = 0; - ShaderBuilderUtility::CreateShaderInputAndOutputContracts( - azslData, shaderEntryPoints, *shaderOptionGroupLayout.get(), - subProductsPaths[ShaderBuilderUtility::AzslSubProducts::om], - subProductsPaths[ShaderBuilderUtility::AzslSubProducts::ia], - shaderInputContract, shaderOutputContract, colorAttachmentCount); - shaderAssetCreator.SetInputContract(shaderInputContract); - shaderAssetCreator.SetOutputContract(shaderOutputContract); - - if (hasRasterProgram) - { - // Set the various states to what is in the descriptor. - const RHI::TargetBlendState& targetBlendState = shaderSourceData.m_blendState; - RHI::RenderStates renderStates; - renderStates.m_rasterState = shaderSourceData.m_rasterState; - renderStates.m_depthStencilState = shaderSourceData.m_depthStencilState; - // [GFX TODO][ATOM-930] We should support unique blend states per RT - for (size_t i = 0; i < colorAttachmentCount; ++i) - { - renderStates.m_blendState.m_targets[i] = targetBlendState; - } - - shaderAssetCreator.SetRenderStates(renderStates); - } - - Outcome hlslSourceCodeOutcome = Utils::ReadFile(hlslFullPath); - if (!hlslSourceCodeOutcome.IsSuccess()) - { - AZ_Error( - ShaderAssetBuilder2Name, false, "Failed to obtain shader source from %s. [%s]", hlslFullPath.c_str(), - hlslSourceCodeOutcome.GetError().c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - AZStd::string hlslSourceCode = hlslSourceCodeOutcome.TakeValue(); - - // The root ShaderVariantAsset needs to be created with the known uuid of the source .shader asset because - // the ShaderAsset owns a Data::Asset<> reference that gets serialized. It must have the correct uuid - // so the root ShaderVariantAsset is found when the ShaderAsset is deserialized. - uint32_t rootVariantProductSubId = RPI::ShaderAsset2::MakeProductAssetSubId( - shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex, - aznumeric_cast(RPI::ShaderAsset2ProductSubId::RootShaderVariantAsset)); - auto assetIdOutcome = RPI::AssetUtils::MakeAssetId(shaderFullPath, rootVariantProductSubId); - AZ_Assert(assetIdOutcome.IsSuccess(), "Failed to get AssetId from shader %s", shaderFullPath.c_str()); - const Data::AssetId variantAssetId = assetIdOutcome.TakeValue(); - - RPI::ShaderVariantListSourceData::VariantInfo rootVariantInfo; - ShaderVariantCreationContext2 shaderVariantCreationContext = { - *shaderPlatformInterface, - request.m_platformInfo, - buildOptions.m_compilerArguments, - request.m_tempDirPath, - startTime, - shaderSourceData, - *shaderOptionGroupLayout.get(), - shaderEntryPoints, - variantAssetId, - superVariantAzslinStemName, - hlslFullPath, - hlslSourceCode}; - - - AZStd::optional outputByproducts; - auto rootShaderVariantAssetOutcome = ShaderVariantAssetBuilder2::CreateShaderVariantAsset(rootVariantInfo, shaderVariantCreationContext, outputByproducts); - if (!rootShaderVariantAssetOutcome.IsSuccess()) - { - AZ_Error(ShaderAssetBuilder2Name, false, "%s\n", rootShaderVariantAssetOutcome.GetError().c_str()) - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - Data::Asset rootShaderVariantAsset = rootShaderVariantAssetOutcome.TakeValue(); - - shaderAssetCreator.SetRootShaderVariantAsset(rootShaderVariantAsset); - - if (!shaderAssetCreator.EndSupervariant()) - { - AZ_Error( - ShaderAssetBuilder2Name, false, "Failed to create shader asset for supervariant [%s]", supervariantInfo.m_name.GetCStr()) - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - // Time to save the root variant related assets in the cache. - AssetBuilderSDK::JobProduct assetProduct; - if (!ShaderVariantAssetBuilder2::SerializeOutShaderVariantAsset( - rootShaderVariantAsset, superVariantAzslinStemName, request.m_tempDirPath, *shaderPlatformInterface, - rootVariantProductSubId, - assetProduct)) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - response.m_outputProducts.push_back(assetProduct); - - if (outputByproducts) - { - // add byproducts as job output products: - uint32_t subProductType = aznumeric_cast(RPI::ShaderAsset2ProductSubId::FirstByProduct); - for (const AZStd::string& byproduct : outputByproducts.value().m_intermediatePaths) - { - AssetBuilderSDK::JobProduct jobProduct; - jobProduct.m_productFileName = byproduct; - jobProduct.m_productAssetType = Uuid::CreateName("DebugInfoByProduct-PdbOrDxilTxt"); - jobProduct.m_productSubID = RPI::ShaderAsset2::MakeProductAssetSubId( - shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex, - subProductType++); - response.m_outputProducts.push_back(AZStd::move(jobProduct)); - } - } - - - supervariantIndex++; - - } // end for the supervariant - - shaderAssetCreator.EndAPI(); - - } // end for all ShaderPlatformInterfaces - - Data::Asset shaderAsset; - if (!shaderAssetCreator.End(shaderAsset)) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - if (!SerializeOutShaderAsset(shaderAsset, request.m_tempDirPath, response)) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - - const AZStd::sys_time_t endTime = AZStd::GetTimeNowTicks(); - const AZStd::sys_time_t deltaTime = endTime - startTime; - const float elapsedTimeSeconds = (float)(deltaTime) / (float)AZStd::GetTimeTicksPerSecond(); - - AZ_TracePrintf(ShaderAssetBuilder2Name, "Finished processing %s in %.2f seconds\n", request.m_sourceFile.c_str(), elapsedTimeSeconds); - - ShaderBuilderUtility::LogProfilingData(ShaderAssetBuilder2Name, shaderFileName); - } - - } // ShaderBuilder -} // AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.h deleted file mode 100644 index 915d4e53d0..0000000000 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#pragma once - -#include -#include -#include - -#include - -namespace AZ -{ - namespace Data - { - class AssetHandler; - } - - namespace RHI - { - class ShaderPlatformInterface; - } - - namespace ShaderBuilder - { - struct AzslData; - - class ShaderAssetBuilder2 - : public AssetBuilderSDK::AssetBuilderCommandBus::Handler - { - public: - AZ_TYPE_INFO(ShaderAssetBuilder2, "{C94DA151-82BC-4475-86FA-E6C92A0BD6F8}"); - - static constexpr const char* ShaderAssetBuilder2JobKey = "Shader Asset 2"; - - ShaderAssetBuilder2() = default; - ~ShaderAssetBuilder2() = default; - - // Asset Builder Callback Functions ... - void CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const; - void ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const; - - // AssetBuilderSDK::AssetBuilderCommandBus interface overrides ... - void ShutDown() override { }; - - private: - AZ_DISABLE_COPY_MOVE(ShaderAssetBuilder2); - }; - - } // ShaderBuilder -} // AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.cpp index c256caac4a..b34fbab9ae 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.cpp +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.cpp @@ -29,8 +29,7 @@ #include #include -#include // DEPRECATED - [ATOM-15472] -#include +#include #include #include @@ -87,68 +86,6 @@ namespace AZ AzFramework::StringFunc::Path::ReplaceExtension(absoluteAzslPath, "azsl"); } - static bool LoadShaderResourceGroupAssets( - [[maybe_unused]] const char* builderName, - const SrgDataContainer& resourceGroups, - ShaderResourceGroupAssets& srgAssets) - { - bool readSRGsSuccessfuly = true; - - // Load all SRGs included in source file - for (const SrgData& srgData : resourceGroups) - { - Data::AssetId assetId = {}; - AZStd::string srgFilePath = ""; - - srgFilePath = srgData.m_containingFileName; - AzFramework::StringFunc::Path::Normalize(srgFilePath); - - bool assetFound = false; - Data::AssetInfo sourceInfo; - AZStd::string watchFolder; - AzToolsFramework::AssetSystemRequestBus::BroadcastResult(assetFound, &AzToolsFramework::AssetSystem::AssetSystemRequest::GetSourceInfoBySourcePath, srgFilePath.c_str(), sourceInfo, watchFolder); - - if (!assetFound) - { - AZ_Error(builderName, false, "Could not find asset identified by path '%s'", srgFilePath.c_str()); - readSRGsSuccessfuly = false; - continue; - } - - assetId.m_guid = sourceInfo.m_assetId.m_guid; - assetId.m_subId = static_cast(AZStd::hash()(srgData.m_name) & 0xFFFFFFFF); - - Data::Asset asset = Data::AssetManager::Instance().GetAsset( - assetId, AZ::Data::AssetLoadBehavior::PreLoad); - asset.BlockUntilLoadComplete(); - if (!asset.IsReady()) - { - using Status = Data::AssetData::AssetStatus; - AZStd::string statusString = asset.GetStatus() == Status::Loading ? "loading" - : asset.GetStatus() == Status::ReadyPreNotify ? "ready-pre-notify" - : asset.GetStatus() == Status::Error ? "error" : "not-loaded/ready/unknown"; - - AZ_Error(builderName, false, "Searching SRG [%s]: Could not load SRG asset. (asset status [%s]) AssetId='%s' Path='%s'", - srgData.m_name.c_str(), - statusString.c_str(), - assetId.ToString().c_str(), srgFilePath.c_str()); - readSRGsSuccessfuly = false; - continue; - } - else if (!asset->IsValid()) - { - AZ_Error(builderName, false, "SRG asset has no layout information. AssetId='%s' Path='%s'", - assetId.ToString().c_str(), srgFilePath.c_str()); - readSRGsSuccessfuly = false; - continue; - } - - srgAssets.push_back(asset); - } - - return readSRGsSuccessfuly; - } - AZStd::shared_ptr PrepareSourceInput( [[maybe_unused]] const char* builderName, const AZStd::string& shaderAssetSourcePath, @@ -171,87 +108,6 @@ namespace AZ return files; } - - //! [GFX TODO] [ATOM-15472] Deprecated, remove when this ticket is addressed. - AssetBuilderSDK::ProcessJobResultCode PopulateAzslDataFromJsonFiles( - const char* builderName, - const AzslSubProducts::Paths& pathOfJsonFiles, - AzslData& azslData, - ShaderResourceGroupAssets& srgAssets, - RPI::Ptr shaderOptionGroupLayout, - BindingDependencies& bindingDependencies, - RootConstantData& rootConstantData) - { - AzslCompiler azslc(azslData.m_preprocessedFullPath); // set the input file for eventual error messages, but the compiler won't be called on it. - bool allReadSuccess = true; - // read: input assembly reflection - // shader resource group reflection - // options reflection - // binding dependencies reflection - int indicesOfInterest[] = { AzslSubProducts::ia, AzslSubProducts::srg, AzslSubProducts::options, AzslSubProducts::bindingdep }; - AZStd::unordered_map> outcomes; - for (int i : indicesOfInterest) - { - outcomes[i] = JsonSerializationUtils::ReadJsonFile(pathOfJsonFiles[i]); - if (!outcomes[i].IsSuccess()) - { - AZ_Error(builderName, false, "%s", outcomes[i].GetError().c_str()); - allReadSuccess = false; - } - } - if (!allReadSuccess) - { - return AssetBuilderSDK::ProcessJobResult_Failed; - } - - // Get full list of functions eligible for vertex shader entry points - // along with metadata for constructing the InputAssembly for each of them - if (!azslc.ParseIaPopulateFunctionData(outcomes[AzslSubProducts::ia].GetValue(), azslData.m_functions)) - { - return AssetBuilderSDK::ProcessJobResult_Failed; - } - - // Each SRG is built as a separate asset in the SrgLayoutBuilder, here we just - // build the list and load the data from multiple dependency assets. - if (!azslc.ParseSrgPopulateSrgData(outcomes[AzslSubProducts::srg].GetValue(), azslData.m_srgData)) - { - return AssetBuilderSDK::ProcessJobResult_Failed; - } - - // Add all Shader Resource Group Assets that were defined in the shader code to the shader asset - if (!LoadShaderResourceGroupAssets(builderName, azslData.m_srgData, srgAssets)) - { - AZ_Error(builderName, false, "Failed to obtain shader resource group assets"); - return AssetBuilderSDK::ProcessJobResult_Failed; - } - - // The shader options define what options are available, what are the allowed values/range - // for each option and what is its default value. - if (!azslc.ParseOptionsPopulateOptionGroupLayout(outcomes[AzslSubProducts::options].GetValue(), shaderOptionGroupLayout)) - { - AZ_Error(builderName, false, "Failed to find a valid list of shader options!"); - return AssetBuilderSDK::ProcessJobResult_Failed; - } - - // It analyzes the shader external bindings (all SRG contents) - // and informs us on register indexes and shader stages using these resources - if (!azslc.ParseBindingdepPopulateBindingDependencies(outcomes[AzslSubProducts::bindingdep].GetValue(), bindingDependencies)) // consuming data from binding-dep - { - AZ_Error(builderName, false, "Failed to obtain shader resource binding reflection"); - return AssetBuilderSDK::ProcessJobResult_Failed; - } - - // access the root constants reflection - if (!azslc.ParseSrgPopulateRootConstantData(outcomes[AzslSubProducts::srg].GetValue(), rootConstantData)) // consuming data from --srg ("InlineConstantBuffer" subjson section) - { - AZ_Error(builderName, false, "Failed to obtain root constant data reflection"); - return AssetBuilderSDK::ProcessJobResult_Failed; - } - - return AssetBuilderSDK::ProcessJobResult_Success; - } - - AssetBuilderSDK::ProcessJobResultCode PopulateAzslDataFromJsonFiles( const char* builderName, const AzslSubProducts::Paths& pathOfJsonFiles, @@ -361,7 +217,8 @@ namespace AZ } //! the binding dependency structure may store lots of high level function names which are not entry points - static void PruneNonEntryFunctions(BindingDependencies& bindingDependencies /*inout*/, const MapOfStringToStageType& shaderEntryPoints) + static void PruneNonEntryFunctions( + BindingDependencies& bindingDependencies /*inout*/, const MapOfStringToStageType& shaderEntryPoints) { auto cleaner = [&shaderEntryPoints](BindingDependencies::FunctionsNameVector& functionVector) { @@ -387,120 +244,6 @@ namespace AZ }); } } - - RHI::Ptr BuildPipelineLayoutDescriptorForApi( - [[maybe_unused]] const char* builderName, - RHI::ShaderPlatformInterface* shaderPlatformInterface, - BindingDependencies& bindingDependencies /*inout*/, - const ShaderResourceGroupAssets& srgAssets, - const MapOfStringToStageType& shaderEntryPoints, - const RHI::ShaderCompilerArguments& shaderCompilerArguments, - const RootConstantData* rootConstantData /*= nullptr*/) - { - PruneNonEntryFunctions(bindingDependencies, shaderEntryPoints); - - // Translates from a list of function names that use a resource to a shader stage mask. - auto getRHIShaderStageMask = [&shaderEntryPoints](const BindingDependencies::FunctionsNameVector& functions) - { - RHI::ShaderStageMask mask = RHI::ShaderStageMask::None; - // Iterate through all the functions that are using the resource. - for (const auto& functionName : functions) - { - // Search the function name into the list of valid entry points into the shader. - auto findId = AZStd::find_if(shaderEntryPoints.begin(), shaderEntryPoints.end(), [&functionName, &mask](const auto& item) - { - return item.first == functionName; - }); - - if (findId != shaderEntryPoints.end()) - { - // Use the entry point shader stage type to calculate the mask. - RHI::ShaderHardwareStage hardwareStage = ToAssetBuilderShaderType(findId->second); - mask |= static_cast(AZ_BIT(static_cast(RHI::ToRHIShaderStage(hardwareStage)))); - } - } - - return mask; - }; - - // Build general PipelineLayoutDescriptor data that is provided for all platforms - RHI::Ptr pipelineLayoutDescriptor = shaderPlatformInterface->CreatePipelineLayoutDescriptor(); - RHI::ShaderPlatformInterface::ShaderResourceGroupInfoList srgInfos; - for (const auto& srgAsset : srgAssets) - { - // Search the binding info for a Shader Resource Group. - AZStd::string_view srgName = srgAsset->GetName().GetStringView(); - const BindingDependencies::SrgResources* srgResources = bindingDependencies.GetSrg(srgName); - if (!srgResources) - { - AZ_Error(builderName, false, "SRG %s not found in the dependency dataset", srgName.data()); - return nullptr; - } - - RHI::ShaderResourceGroupBindingInfo srgBindingInfo; - srgBindingInfo.m_spaceId = srgResources->m_registerSpace; - const RHI::ShaderResourceGroupLayout* layout = srgAsset->GetLayout(shaderPlatformInterface->GetAPIType()); - // Calculate the binding in for the constant data. All constant data share the same binding info. - srgBindingInfo.m_constantDataBindingInfo = { - getRHIShaderStageMask(srgResources->m_srgConstantsDependencies.m_binding.m_dependentFunctions), - srgResources->m_srgConstantsDependencies.m_binding.m_registerId }; - // Calculate the binding info for each resource of the Shader Resource Group. - for (auto const& resource : srgResources->m_resources) - { - auto const& resourceInfo = resource.second; - srgBindingInfo.m_resourcesRegisterMap.insert( - { AZ::Name(resourceInfo.m_selfName), - RHI::ResourceBindingInfo(getRHIShaderStageMask(resourceInfo.m_dependentFunctions), resourceInfo.m_registerId) }); - } - pipelineLayoutDescriptor->AddShaderResourceGroupLayoutInfo(*layout, srgBindingInfo); - srgInfos.push_back(RHI::ShaderPlatformInterface::ShaderResourceGroupInfo{ layout, srgBindingInfo }); - } - - RHI::Ptr rootConstantsLayout = RHI::ConstantsLayout::Create(); - if (rootConstantData) - { - for (const auto& constantData : rootConstantData->m_constants) - { - RHI::ShaderInputConstantDescriptor rootConstantDesc( - constantData.m_nameId, constantData.m_constantByteOffset, constantData.m_constantByteSize, - rootConstantData->m_bindingInfo.m_registerId); - - rootConstantsLayout->AddShaderInput(rootConstantDesc); - } - } - - if (!rootConstantsLayout->Finalize()) - { - AZ_Error(builderName, false, "Failed to finalize root constants layout"); - return nullptr; - } - - pipelineLayoutDescriptor->SetRootConstantsLayout(*rootConstantsLayout); - - RHI::ShaderPlatformInterface::RootConstantsInfo rootConstantInfo; - if (rootConstantData) - { - rootConstantInfo.m_spaceId = rootConstantData->m_bindingInfo.m_space; - rootConstantInfo.m_registerId = rootConstantData->m_bindingInfo.m_registerId; - } - else - { - RootConstantData dummyRootConstantData; - rootConstantInfo.m_spaceId = dummyRootConstantData.m_bindingInfo.m_space; - rootConstantInfo.m_registerId = dummyRootConstantData.m_bindingInfo.m_registerId; - } - rootConstantInfo.m_totalSizeInBytes = rootConstantsLayout->GetDataSize(); - - // Build platform-specific PipelineLayoutDescriptor data, and finalize - if (!shaderPlatformInterface->BuildPipelineLayoutDescriptor( - pipelineLayoutDescriptor, srgInfos, rootConstantInfo, shaderCompilerArguments)) - { - AZ_Error(builderName, false, "Failed to build pipeline layout descriptor"); - return nullptr; - } - - return pipelineLayoutDescriptor; - } static AZStd::string DumpCode( [[maybe_unused]] const char* builderName, @@ -539,14 +282,8 @@ namespace AZ return finalFilePath; } - // [GFX TODO] Remove 'add2' when [ATOM-15472] - AZStd::string DumpPreprocessedCode(const char* builderName, const AZStd::string& preprocessedCode, const AZStd::string& tempDirPath, const AZStd::string& stemName, const AZStd::string& apiTypeString, bool add2) + AZStd::string DumpPreprocessedCode(const char* builderName, const AZStd::string& preprocessedCode, const AZStd::string& tempDirPath, const AZStd::string& stemName, const AZStd::string& apiTypeString) { - if (add2) - { - return DumpCode(builderName, preprocessedCode, tempDirPath, stemName, apiTypeString, "azslin2"); - } - return DumpCode(builderName, preprocessedCode, tempDirPath, stemName, apiTypeString, "azslin"); } @@ -584,8 +321,7 @@ namespace AZ AZStd::remove_if(AZ_BEGIN_END(platformInterfaces), [&](const RHI::ShaderPlatformInterface* shaderPlatformInterface) { return !shaderPlatformInterface || - shaderSourceData.IsRhiBackendDisabled(shaderPlatformInterface->GetAPIName()) || - (shaderPlatformInterface->GetAPIUniqueIndex() == static_cast(AZ::RHI::APIIndex::Null)); + shaderSourceData.IsRhiBackendDisabled(shaderPlatformInterface->GetAPIName()); }), platformInterfaces.end()); return platformInterfaces; @@ -718,15 +454,7 @@ namespace AZ #endif } - uint32_t MakeAzslBuildProductSubId(RPI::ShaderAssetSubId subId, RHI::APIType apiType) - { - auto subIdMaxEnumerator = RPI::ShaderAssetSubId::GeneratedHlslSource; - // separate bit space between subid enum, and api-type: - int shiftLeft = static_cast(log2(static_cast(subIdMaxEnumerator))) + 1; - return static_cast(subId) + (apiType << shiftLeft); - } - - Outcome ObtainBuildArtifactPathFromShaderAssetBuilder2( + Outcome ObtainBuildArtifactPathFromShaderAssetBuilder( const uint32_t rhiUniqueIndex, const AZStd::string& platformIdentifier, const AZStd::string& shaderJsonPath, const uint32_t supervariantIndex, RPI::ShaderAssetSubId shaderAssetSubId) { @@ -749,12 +477,12 @@ namespace AZ platformId = AzFramework::PlatformId::IOS; } - uint32_t assetSubId = RPI::ShaderAsset2::MakeProductAssetSubId(rhiUniqueIndex, supervariantIndex, aznumeric_cast(shaderAssetSubId)); + uint32_t assetSubId = RPI::ShaderAsset::MakeProductAssetSubId(rhiUniqueIndex, supervariantIndex, aznumeric_cast(shaderAssetSubId)); auto assetIdOutcome = RPI::AssetUtils::MakeAssetId(shaderJsonPath, assetSubId); if (!assetIdOutcome.IsSuccess()) { return Failure(AZStd::string::format( - "Missing ShaderAssetBuilder2 product %s, for sub %d", shaderJsonPath.c_str(), (uint32_t)shaderAssetSubId)); + "Missing ShaderAssetBuilder product %s, for sub %d", shaderJsonPath.c_str(), (uint32_t)shaderAssetSubId)); } Data::AssetId assetId = assetIdOutcome.TakeValue(); @@ -778,113 +506,6 @@ namespace AZ return AZ::Success(assetFullPath); } - Outcome ObtainBuildArtifactsFromAzslBuilder([[maybe_unused]] const char* builderName, const AZStd::string& sourceFullPath, RHI::APIType apiType, const AZStd::string& platform) - { - AzslSubProducts::Paths products; - - // platform id from identifier - AzFramework::PlatformId platformId = AzFramework::PlatformId::PC; - if (platform == "pc") - { - platformId = AzFramework::PlatformId::PC; - } - else if (platform == "mac") - { - platformId = AzFramework::PlatformId::MAC_ID; - } - else if (platform == "android") - { - platformId = AzFramework::PlatformId::ANDROID_ID; - } - else if (platform == "ios") - { - platformId = AzFramework::PlatformId::IOS; - } - - for (RPI::ShaderAssetSubId sub : AzslSubProducts::SubList) - { - uint32_t assetSubId = MakeAzslBuildProductSubId(sub, apiType); - auto assetIdOutcome = RPI::AssetUtils::MakeAssetId(sourceFullPath, assetSubId); - AZ_Error(builderName, assetIdOutcome.IsSuccess(), "Missing AZSL product %s, for sub %d", sourceFullPath.c_str(), (uint32_t)sub); - if (!assetIdOutcome.IsSuccess()) - { - return Failure(); - } - Data::AssetId assetId = assetIdOutcome.TakeValue(); - // get the relative path: - AZStd::string assetPath; - Data::AssetCatalogRequestBus::BroadcastResult(assetPath, &Data::AssetCatalogRequests::GetAssetPathById, assetId); - - // get the root: - AZStd::string assetRoot = AzToolsFramework::PlatformAddressedAssetCatalog::GetAssetRootForPlatform(platformId); - // join - AZStd::string assetFullPath; - AzFramework::StringFunc::Path::Join(assetRoot.c_str(), assetPath.c_str(), assetFullPath); - bool fileExists = IO::FileIOBase::GetInstance()->Exists(assetFullPath.c_str()) && !IO::FileIOBase::GetInstance()->IsDirectory(assetFullPath.c_str()); - if (!fileExists) - { - return Failure(); - } - products.push_back(assetFullPath); - } - return AZ::Success(products); - } - - // DEPRECATED [ATOM-15472] - // See header for info. - // REMARK: The approach to string searching and matching done in this function is kind of naive - // because the strings can match text within a comment block, etc. So it is not 100% fool proof. - // We would need proper grammar parsing to reach 100% confidence. - // [GFX TODO][ATOM-5302][ATOM-5308] The following function will be removed once, both, [ATOM-5302] & [ATOM-5308] are addressed, and - // azslc allows redundant SrgSemantics for "partial" qualified SRGs. - SrgSkipFileResult ShouldSkipFileForSrgProcessing([[maybe_unused]] const char* builderName, const AZStd::string_view fullPath) - { - AZ::IO::FileIOStream stream(fullPath.data(), AZ::IO::OpenMode::ModeRead); - if (!stream.IsOpen()) - { - AZ_Warning(builderName, false, "\"%s\" source file could not be opened.", fullPath.data()); - return SrgSkipFileResult::Error; - } - - if (!stream.CanRead()) - { - AZ_Warning(builderName, false, "\"%s\" source file could not be read.", fullPath.data()); - return SrgSkipFileResult::Error; - } - - // Do a quick check for "ShaderResourceGroup" to determine if this file might even have a ShaderResourceGroup to parse. - AZStd::string fileContents; - fileContents.resize(stream.GetLength()); - stream.Read(stream.GetLength(), fileContents.data()); - - static const AZStd::regex partialSrgRegex("\n\\s*partial\\s+ShaderResourceGroup\\s+", AZStd::regex::ECMAScript); - if (AZStd::regex_search(fileContents.data(), partialSrgRegex)) - { - // It is considered a programmer's error if a file declares both, non-partial and partial SRGs. - static const AZStd::regex srgRegex("\n\\s*ShaderResourceGroup\\s+", AZStd::regex::ECMAScript); - if (AZStd::regex_search(fileContents.data(), srgRegex)) - { - AZ_Error(builderName, false, "\"%s\" defines both partial and non-partial SRGs.", fullPath.data()); - return SrgSkipFileResult::Error; - } - // We should skip files that define partial Srgs because an srgi file will eventually - // include it. - return SrgSkipFileResult::SkipFile; - } - - // This is an optimization to avoid unnecessary preprocessing a whole tree of azsli files; we can detect when a - // ShaderResourceGroupAsset wouldn't be produced and return early. Note, we could remove this early-return check - // if the preprocessing code below is updated to not follow include paths [ATOM-5302]. - // (Note this optimization is not valid for srgi files because those do require scanning all include paths)" - if (fileContents.find("ShaderResourceGroup") == AZStd::string::npos) - { - // No ShaderResourceGroup in this file, so there's nothing to do. Create no jobs and report success. - return SrgSkipFileResult::SkipFile; - } - - return SrgSkipFileResult::ContinueProcess; - } - RHI::Ptr BuildPipelineLayoutDescriptorForApi( [[maybe_unused]] const char* builderName, const RPI::ShaderResourceGroupLayoutList& srgLayoutList, const MapOfStringToStageType& shaderEntryPoints, const RHI::ShaderCompilerArguments& shaderCompilerArguments, const RootConstantData& rootConstantData, diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.h index e31c6c70a1..0a44195fad 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.h +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.h @@ -18,8 +18,7 @@ #include #include -#include -#include +#include #include "AzslData.h" @@ -32,7 +31,6 @@ namespace AZ struct BindingDependencies; struct RootConstantData; - using ShaderResourceGroupAssets = AZStd::fixed_vector, RHI::Limits::Pipeline::ShaderResourceGroupCountMax>; using MapOfStringToStageType = AZStd::unordered_map; namespace ShaderBuilderUtility @@ -53,7 +51,7 @@ namespace AZ using SubId = RPI::ShaderAssetSubId; // product sub id enumerators: - static constexpr SubId SubList[] = {SubId::PostPreprocessingPureAzsl, + static constexpr SubId SubList[] = {SubId::FlatAzsl, SubId::IaJson, SubId::OmJson, SubId::SrgJson, @@ -66,20 +64,6 @@ namespace AZ using Paths = AZStd::fixed_vector; }; - //! [GFX TODO] [ATOM-15472] Deprecated, remove when this ticket is addressed. - //! Collects and generates the necessary data for compiling a shader. - //! @azslData must have paths correctly set. - //! shaderOptionGroupLayout, azslData, srgAssets get the output data. - AssetBuilderSDK::ProcessJobResultCode PopulateAzslDataFromJsonFiles( - const char* builderName, - const AzslSubProducts::Paths& pathOfJsonFiles, - AzslData& azslData, - ShaderResourceGroupAssets& srgAssets, - RPI::Ptr shaderOptionGroupLayout, - BindingDependencies& bindingDependencies, - RootConstantData& rootConstantData - ); - //! Collects all the JSON files generated during AZSL compilation and loads the data as objects. //! @azslData must have paths correctly set. //! @azslData, @srgLayoutList, @shaderOptionGroupLayout, @bindingDependencies and @rootConstantData get the output data. @@ -92,22 +76,6 @@ namespace AZ RHI::ShaderHardwareStage ToAssetBuilderShaderType(RPI::ShaderStageType stageType); - //! Must be called before shaderPlatformInterface->CompilePlatformInternal() - //! This function will prune non entry functions from BindingDependencies and use the - //! rest of input data to create a pipeline layout descriptor. - //! The pipeline layout descriptor is returned, but the same data will also be set into the @shaderPlatformInterface - //! object, which is why it is important to call this method before calling shaderPlatformInterface->CompilePlatformInternal(). - RHI::Ptr BuildPipelineLayoutDescriptorForApi( - const char* builderName, - RHI::ShaderPlatformInterface* shaderPlatformInterface, - BindingDependencies& bindingDependencies /*inout*/, - const ShaderResourceGroupAssets& srgAssets, - const MapOfStringToStageType& shaderEntryPoints, - const RHI::ShaderCompilerArguments& shaderCompilerArguments, - const RootConstantData* rootConstantData = nullptr - ); - - //! Must be called before shaderPlatformInterface->CompilePlatformInternal() //! This function will prune non entry functions from BindingDependencies and use the //! rest of input data to create a pipeline layout descriptor. @@ -145,8 +113,7 @@ namespace AZ const AZStd::string& preprocessedCode, const AZStd::string& tempDirPath, const AZStd::string& preprocessedFileName, - const AZStd::string& apiTypeString = "", - bool add2 = false); // [GFX TODO] Remove add2 when [ATOM-15472] + const AZStd::string& apiTypeString = ""); //! Create a file from a string's content. //! That file will be named filename.api.azsl.prepend @@ -181,25 +148,11 @@ namespace AZ void LogProfilingData(const char* builderName, AZStd::string_view shaderPath); - //! Job products sub id generation helper for AzslBuilder - uint32_t MakeAzslBuildProductSubId(RPI::ShaderAssetSubId subId, RHI::APIType apiType); - - //! Returns the asset path of a product artifact produced by ShaderAssetBuilder2. - Outcome ObtainBuildArtifactPathFromShaderAssetBuilder2( + //! Returns the asset path of a product artifact produced by ShaderAssetBuilder. + Outcome ObtainBuildArtifactPathFromShaderAssetBuilder( const uint32_t rhiUniqueIndex, const AZStd::string& platformIdentifier, const AZStd::string& shaderJsonPath, const uint32_t supervariantIndex, RPI::ShaderAssetSubId shaderAssetSubId); - //! Reconstructs the expected output product paths of the AzslBuilder (from the 2 arguments @azslSourceFullPath and @apiType) - Outcome ObtainBuildArtifactsFromAzslBuilder(const char* builderName, const AZStd::string& azslSourceFullPath, RHI::APIType apiType, const AZStd::string& platform); - - //! Returns true if a file should skip processing. - //! Should be called only for non *.srgi files. - //! If the file contains "partial ShaderResourceGroup" (validated through a proper regular expression) - //! then it is skippable. If this same file also defines non-partial SRGs it will be skipped with error. - //! If the file doesn't contain "ShaderResourceGroup" then it does not define a ShaderResourceGroup - //! and it is skippable too. - enum class SrgSkipFileResult { Error, SkipFile, ContinueProcess }; - SrgSkipFileResult ShouldSkipFileForSrgProcessing(const char* builderName, const AZStd::string_view fullPath); } // ShaderBuilderUtility namespace } // ShaderBuilder namespace } // AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder.cpp index 7114b50906..e1b99fc409 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder.cpp +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder.cpp @@ -22,7 +22,6 @@ #include #include -#include #include #include @@ -55,7 +54,6 @@ #include "ShaderBuilderUtility.h" #include "AzslData.h" #include "AzslCompiler.h" -#include "AzslBuilder.h" #include #include #include @@ -67,18 +65,12 @@ namespace AZ { static constexpr char ShaderVariantAssetBuilderName[] = "ShaderVariantAssetBuilder"; - static constexpr uint32_t ShaderVariantLoadErrorParam = 0; - static constexpr uint32_t ShaderSourceFilePathJobParam = 2; - static constexpr uint32_t ShaderVariantJobVariantParam = 3; - static constexpr uint32_t ShouldExitEarlyFromProcessJobParam = 4; - static void AddShaderAssetJobDependency( - AssetBuilderSDK::JobDescriptor& jobDescriptor, - const AssetBuilderSDK::PlatformInfo& platformInfo, - const AZStd::string& shaderVariantListFilePath, - const AZStd::string& shaderFilePath) + AssetBuilderSDK::JobDescriptor& jobDescriptor, const AssetBuilderSDK::PlatformInfo& platformInfo, + const AZStd::string& shaderVariantListFilePath, const AZStd::string& shaderFilePath) { - AZStd::vector possibleDependencies = AZ::RPI::AssetUtils::GetPossibleDepenencyPaths(shaderVariantListFilePath, shaderFilePath); + AZStd::vector possibleDependencies = + AZ::RPI::AssetUtils::GetPossibleDepenencyPaths(shaderVariantListFilePath, shaderFilePath); for (auto& file : possibleDependencies) { AssetBuilderSDK::JobDependency jobDependency; @@ -309,12 +301,7 @@ namespace AZ jobDescriptor.m_jobKey = ShaderVariantAssetBuilderJobKey; jobDescriptor.SetPlatformIdentifier(info.m_identifier.data()); - // queue up AzslBuilder dependencies: - AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverValidShaderPlatformInterfaces(info); - for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) - { - AddAzslBuilderJobDependency(jobDescriptor, info.m_identifier, shaderPlatformInterface->GetAPIName().GetCStr(), shaderSourceFileFullPath); - } + AddShaderAssetJobDependency(jobDescriptor, info, variantListFullPath, shaderVariantList.m_shaderFilePath); if (loadResult.m_code == LoadResult::Code::DeferredError) { @@ -357,7 +344,7 @@ namespace AZ response.m_createJobOutputs.push_back(jobDescriptor); } - // One job for each variant. Each job will produce one ".azshadervariant". + // One job for each variant. Each job will produce one ".azshadervariant" per RHI per supervariant. for (const AZ::RPI::ShaderVariantListSourceData::VariantInfo& variantInfo : shaderVariantList.m_shaderVariants) { AZStd::string variantInfoAsJsonString; @@ -431,6 +418,99 @@ namespace AZ } } + + static RPI::Ptr LoadShaderOptionsGroupLayoutFromShaderAssetBuilder( + const RHI::ShaderPlatformInterface* shaderPlatformInterface, + const AssetBuilderSDK::PlatformInfo& platformInfo, + const AzslCompiler& azslCompiler, + const AZStd::string& shaderSourceFileFullPath, + const RPI::SupervariantIndex supervariantIndex) + { + auto optionsGroupPathOutcome = ShaderBuilderUtility::ObtainBuildArtifactPathFromShaderAssetBuilder( + shaderPlatformInterface->GetAPIUniqueIndex(), platformInfo.m_identifier, shaderSourceFileFullPath, supervariantIndex.GetIndex(), + AZ::RPI::ShaderAssetSubId::OptionsJson); + if (!optionsGroupPathOutcome.IsSuccess()) + { + AZ_Error(ShaderVariantAssetBuilderName, false, "%s", optionsGroupPathOutcome.GetError().c_str()); + return nullptr; + } + auto optionsGroupJsonPath = optionsGroupPathOutcome.TakeValue(); + RPI::Ptr shaderOptionGroupLayout = RPI::ShaderOptionGroupLayout::Create(); + // The shader options define what options are available, what are the allowed values/range + // for each option and what is its default value. + auto jsonOutcome = JsonSerializationUtils::ReadJsonFile(optionsGroupJsonPath); + if (!jsonOutcome.IsSuccess()) + { + AZ_Error(ShaderVariantAssetBuilderName, false, "%s", jsonOutcome.GetError().c_str()); + return nullptr; + } + if (!azslCompiler.ParseOptionsPopulateOptionGroupLayout(jsonOutcome.GetValue(), shaderOptionGroupLayout)) + { + AZ_Error(ShaderVariantAssetBuilderName, false, "Failed to find a valid list of shader options!"); + return nullptr; + } + + return shaderOptionGroupLayout; + } + + static void LoadShaderFunctionsFromShaderAssetBuilder( + const RHI::ShaderPlatformInterface* shaderPlatformInterface, const AssetBuilderSDK::PlatformInfo& platformInfo, + const AzslCompiler& azslCompiler, const AZStd::string& shaderSourceFileFullPath, + const RPI::SupervariantIndex supervariantIndex, + AzslFunctions& functions) + { + auto functionsJsonPathOutcome = ShaderBuilderUtility::ObtainBuildArtifactPathFromShaderAssetBuilder( + shaderPlatformInterface->GetAPIUniqueIndex(), platformInfo.m_identifier, shaderSourceFileFullPath, supervariantIndex.GetIndex(), + AZ::RPI::ShaderAssetSubId::IaJson); + if (!functionsJsonPathOutcome.IsSuccess()) + { + AZ_Error(ShaderVariantAssetBuilderName, false, "%s", functionsJsonPathOutcome.GetError().c_str()); + return; + } + + auto functionsJsonPath = functionsJsonPathOutcome.TakeValue(); + auto jsonOutcome = JsonSerializationUtils::ReadJsonFile(functionsJsonPath); + if (!jsonOutcome.IsSuccess()) + { + AZ_Error(ShaderVariantAssetBuilderName, false, "%s", jsonOutcome.GetError().c_str()); + return; + } + if (!azslCompiler.ParseIaPopulateFunctionData(jsonOutcome.GetValue(), functions)) + { + functions.clear(); + AZ_Error(ShaderVariantAssetBuilderName, false, "Failed to find shader functions."); + return; + } + } + + + // Returns the content of the hlsl file for the given supervariant as produced by ShaderAsssetBuilder. + // In addition to the content it also returns the full path of the hlsl file in @hlslSourcePath. + static AZStd::string LoadHlslFileFromShaderAssetBuilder( + const RHI::ShaderPlatformInterface* shaderPlatformInterface, const AssetBuilderSDK::PlatformInfo& platformInfo, + const AZStd::string& shaderSourceFileFullPath, const RPI::SupervariantIndex supervariantIndex, AZStd::string& hlslSourcePath) + { + auto hlslSourcePathOutcome = ShaderBuilderUtility::ObtainBuildArtifactPathFromShaderAssetBuilder( + shaderPlatformInterface->GetAPIUniqueIndex(), platformInfo.m_identifier, shaderSourceFileFullPath, supervariantIndex.GetIndex(), + AZ::RPI::ShaderAssetSubId::GeneratedHlslSource); + if (!hlslSourcePathOutcome.IsSuccess()) + { + AZ_Error(ShaderVariantAssetBuilderName, false, "%s", hlslSourcePathOutcome.GetError().c_str()); + return ""; + } + + hlslSourcePath = hlslSourcePathOutcome.TakeValue(); + Outcome hlslSourceOutcome = Utils::ReadFile(hlslSourcePath); + if (!hlslSourceOutcome.IsSuccess()) + { + AZ_Error( + ShaderVariantAssetBuilderName, false, "Failed to obtain shader source from %s. [%s]", hlslSourcePath.c_str(), + hlslSourceOutcome.TakeError().c_str()); + return ""; + } + return hlslSourceOutcome.TakeValue(); + } + void ShaderVariantAssetBuilder::ProcessShaderVariantTreeJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const { AZStd::string variantListFullPath; @@ -448,62 +528,45 @@ namespace AZ //For debugging purposes will create a dummy azshadervarianttree file. AZStd::string shaderName; - AzFramework::StringFunc::Path::Split(shaderSourceFileFullPath.c_str(), nullptr /*drive*/, nullptr /*path*/, & shaderName, nullptr /*extension*/); + AzFramework::StringFunc::Path::GetFileName(shaderSourceFileFullPath.c_str(), shaderName); - RPI::ShaderSourceData shaderSourceDescriptor; - AZStd::shared_ptr azslSources = ShaderBuilderUtility::PrepareSourceInput(ShaderVariantAssetBuilderName, shaderSourceFileFullPath, shaderSourceDescriptor); - if (!azslSources) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } + // No error checking because the same calls were already executed during CreateJobs() + auto descriptorParseOutcome = ShaderBuilderUtility::LoadShaderDataJson(shaderSourceFileFullPath); + RPI::ShaderSourceData shaderSourceDescriptor = descriptorParseOutcome.TakeValue(); RPI::Ptr shaderOptionGroupLayout; - AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverValidShaderPlatformInterfaces(request.m_platformInfo); - AzslCompiler azslc(azslSources->m_azslSourceFullPath); // set the input file for eventual error messages, but the compiler won't be called on it. + // Request the list of valid shader platform interfaces for the target platform. + AZStd::vector platformInterfaces = + ShaderBuilderUtility::DiscoverEnabledShaderPlatformInterfaces(request.m_platformInfo, shaderSourceDescriptor); + if (platformInterfaces.empty()) + { + // No work to do. Exit gracefully. + AZ_TracePrintf( + ShaderVariantAssetBuilderName, + "No azshadervarianttree is produced on behalf of %s because all valid RHI backends were disabled for this shader.\n", + shaderSourceFileFullPath.c_str()); + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; + return; + } + + + // set the input file for eventual error messages, but the compiler won't be called on it. + AZStd::string azslFullPath; + ShaderBuilderUtility::GetAbsolutePathToAzslFile(shaderSourceFileFullPath, shaderSourceDescriptor.m_source, azslFullPath); + AzslCompiler azslc(azslFullPath); + AZStd::string previousLoopApiName; for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) { - // Null backend is special and does not require any processing. - if (shaderPlatformInterface->GetAPIUniqueIndex() == static_cast(AZ::RHI::APIIndex::Null)) - { - continue; - } - - if (shaderSourceDescriptor.IsRhiBackendDisabled(shaderPlatformInterface->GetAPIName())) - { - // Gracefully do nothing and continue with the next shaderPlatformInterface. - AZ_TracePrintf( - ShaderVariantAssetBuilderName, "Skipping shader variant tree compilation of [%s] for API [%s]\n", - shaderSourceFileFullPath.c_str(), - shaderPlatformInterface->GetAPIName().GetCStr()); - continue; - } - auto thisLoopApiName = shaderPlatformInterface->GetAPIName().GetStringView(); - auto azslArtifactsOutcome = ShaderBuilderUtility::ObtainBuildArtifactsFromAzslBuilder( - ShaderVariantAssetBuilderName, azslSources->m_azslSourceFullPath, shaderPlatformInterface->GetAPIType(), request.m_platformInfo.m_identifier); - if (!azslArtifactsOutcome.IsSuccess()) + RPI::Ptr loopLocal_ShaderOptionGroupLayout = + LoadShaderOptionsGroupLayoutFromShaderAssetBuilder( + shaderPlatformInterface, request.m_platformInfo, azslc, shaderSourceFileFullPath, RPI::DefaultSupervariantIndex); + if (!loopLocal_ShaderOptionGroupLayout) { response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; return; } - RPI::Ptr loopLocal_ShaderOptionGroupLayout = RPI::ShaderOptionGroupLayout::Create(); - // The shader options define what options are available, what are the allowed values/range - // for each option and what is its default value. - auto jsonOutcome = JsonSerializationUtils::ReadJsonFile(azslArtifactsOutcome.GetValue()[ShaderBuilderUtility::AzslSubProducts::options]); - if (!jsonOutcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "%s", jsonOutcome.GetError().c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - if (!azslc.ParseOptionsPopulateOptionGroupLayout(jsonOutcome.GetValue(), loopLocal_ShaderOptionGroupLayout)) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "Failed to find a valid list of shader options!"); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } if (shaderOptionGroupLayout && shaderOptionGroupLayout->GetHash() != loopLocal_ShaderOptionGroupLayout->GetHash()) { AZ_Error(ShaderVariantAssetBuilderName, false, "There was a discrepancy in shader options between %s and %s", previousLoopApiName.c_str(), thisLoopApiName.data()); @@ -548,76 +611,9 @@ namespace AZ response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; } - static AZStd::pair CompileShaderVariantForAPI( - Data::Asset& shaderVariantAsset, - RHI::ShaderPlatformInterface* shaderPlatformInterface, - AzslData& azslData, - const RHI::ShaderCompilerArguments& shaderCompilerArguments, - const RPI::ShaderOptionGroupLayout& shaderOptionGroupLayout, - const RPI::ShaderSourceData& shaderSourceDataDescriptor, - AZStd::sys_time_t shaderAssetBuildTimestamp, - const RPI::ShaderVariantListSourceData::VariantInfo& variantInfo, - const ShaderResourceGroupAssets& srgAssets, - const AssetBuilderSDK::ProcessJobRequest& request, - BindingDependencies& bindingDependencies, - const RootConstantData& rootConstantData, - const AZStd::string& hlslSourcePath, - const AZStd::string& hlslSourceContent, - const AZStd::string& pathToOmJson, - const AZStd::string& pathToIaJson) - { - const AZStd::string& tempDirPath = request.m_tempDirPath; - RHI::ShaderPlatformInterface::ByProducts byproducts; - - // discover entry points - MapOfStringToStageType shaderEntryPoints; - if (shaderSourceDataDescriptor.m_programSettings.m_entryPoints.empty()) - { - AZ_TracePrintf(ShaderVariantAssetBuilderName, "ProgramSettings do not specify entry points, will use GetDefaultEntryPointsFromShader()\n"); - ShaderBuilderUtility::GetDefaultEntryPointsFromFunctionDataList(azslData.m_functions, shaderEntryPoints); - } - else - { - for (auto& iter : shaderSourceDataDescriptor.m_programSettings.m_entryPoints) - { - shaderEntryPoints[iter.m_name] = iter.m_type; - } - } - - if (!ShaderBuilderUtility::BuildPipelineLayoutDescriptorForApi( - ShaderVariantAssetBuilderName, shaderPlatformInterface, bindingDependencies, srgAssets, shaderEntryPoints, shaderCompilerArguments, &rootConstantData)) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "Failed to build pipeline layout descriptor for api=[%s]", - shaderPlatformInterface->GetAPIName().GetCStr()); - return { false, byproducts }; - } - - ShaderVariantCreationContext variantCreationContext = { Uuid::CreateRandom(), hlslSourcePath, hlslSourceContent, shaderSourceDataDescriptor, - tempDirPath, request.m_platformInfo, shaderOptionGroupLayout, shaderEntryPoints, shaderAssetBuildTimestamp }; - AZ::Outcome, AZStd::string> outcomeForShaderVariantAsset = ShaderVariantAssetBuilder::CreateShaderVariantAssetForAPI( - variantInfo, - variantCreationContext, - *shaderPlatformInterface, - azslData, - shaderCompilerArguments, - pathToOmJson, - pathToIaJson); - if (!outcomeForShaderVariantAsset.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "Failed to generate shader variant with StableId [%u] for API [%s]: %s" - , variantInfo.m_stableId, shaderPlatformInterface->GetAPIName().GetCStr(), outcomeForShaderVariantAsset.GetError().c_str()); - return { false, byproducts }; - } - shaderVariantAsset = outcomeForShaderVariantAsset.TakeValue(); - if (variantCreationContext.m_outputByproducts) - { - byproducts = *variantCreationContext.m_outputByproducts; - } - return { true, byproducts }; - } - void ShaderVariantAssetBuilder::ProcessShaderVariantJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const { + const AZStd::sys_time_t startTime = AZStd::GetTimeNowTicks(); AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); AZStd::string fullPath; @@ -625,419 +621,190 @@ namespace AZ const auto& jobParameters = request.m_jobDescription.m_jobParameters; const AZStd::string& shaderSourceFileFullPath = jobParameters.at(ShaderSourceFilePathJobParam); + AZStd::string shaderFileName; + AzFramework::StringFunc::Path::GetFileName(shaderSourceFileFullPath.c_str(), shaderFileName); + const AZStd::string& variantJsonString = jobParameters.at(ShaderVariantJobVariantParam); RPI::ShaderVariantListSourceData::VariantInfo variantInfo; - const bool toJsonStringSuccess = AZ::RPI::JsonUtils::LoadObjectFromJsonString(variantJsonString, variantInfo); - AZ_Assert(toJsonStringSuccess, "Failed to convert json string to VariantInfo"); - - auto shaderAssetOutcome = RPI::AssetUtils::LoadAsset(shaderSourceFileFullPath); - if (!shaderAssetOutcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "The shader path [%s] could not be loaded.", shaderSourceFileFullPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - Data::Asset shaderAsset = shaderAssetOutcome.TakeValue(); + const bool fromJsonStringSuccess = AZ::RPI::JsonUtils::LoadObjectFromJsonString(variantJsonString, variantInfo); + AZ_Assert(fromJsonStringSuccess, "Failed to convert json string to VariantInfo"); RPI::ShaderSourceData shaderSourceDescriptor; AZStd::shared_ptr sources = ShaderBuilderUtility::PrepareSourceInput(ShaderVariantAssetBuilderName, shaderSourceFileFullPath, shaderSourceDescriptor); + // set the input file for eventual error messages, but the compiler won't be called on it. + AzslCompiler azslc(sources->m_azslSourceFullPath); + // Request the list of valid shader platform interfaces for the target platform. - AZStd::vector platformInterfaces; - ShaderPlatformInterfaceRequestBus::BroadcastResult(platformInterfaces, &ShaderPlatformInterfaceRequest::GetShaderPlatformInterface, request.m_platformInfo); + AZStd::vector platformInterfaces = + ShaderBuilderUtility::DiscoverEnabledShaderPlatformInterfaces(request.m_platformInfo, shaderSourceDescriptor); + if (platformInterfaces.empty()) + { + // No work to do. Exit gracefully. + AZ_TracePrintf(ShaderVariantAssetBuilderName, + "No azshader is produced on behalf of %s because all valid RHI backends were disabled for this shader.\n", + shaderSourceFileFullPath.c_str()); + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; + return; + } + + auto supervariantList = ShaderBuilderUtility::GetSupervariantListFromShaderSourceData(shaderSourceDescriptor); + + GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderVariantAssetBuilderName); + // At this moment We have global build options that should be merged with the build options that are common + // to all the supervariants of this shader. + buildOptions.m_compilerArguments.Merge(shaderSourceDescriptor.m_compiler); + + //! The ShaderOptionGroupLayout is common across all RHIs & Supervariants + RPI::Ptr shaderOptionGroupLayout = nullptr; + // Generate shaders for each of those ShaderPlatformInterfaces. for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) { - // Null backend is special and does not require any processing. - if (shaderPlatformInterface->GetAPIUniqueIndex() == static_cast(AZ::RHI::APIIndex::Null)) - { - continue; - } - AZ_TraceContext("ShaderPlatformInterface", shaderPlatformInterface->GetAPIName().GetCStr()); - if (shaderSourceDescriptor.IsRhiBackendDisabled(shaderPlatformInterface->GetAPIName())) + // Loop through all the Supervariants. + uint32_t supervariantIndexCounter = 0; + for (const auto& supervariantInfo : supervariantList) { - // Gracefully do nothing and continue with the next shaderPlatformInterface. - AZ_TracePrintf( - ShaderVariantAssetBuilderName, "Skipping shader variant compilation of [%s] with StableId [%u] for API [%s]\n", - shaderSourceFileFullPath.c_str(), variantInfo.m_stableId, shaderPlatformInterface->GetAPIName().GetCStr()); - continue; - } + RPI::SupervariantIndex supervariantIndex(supervariantIndexCounter); - if (!shaderPlatformInterface) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "ShaderPlatformInterface for [%s] is not registered, can't compile [%s]", request.m_platformInfo.m_identifier.c_str(), shaderSourceFileFullPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } + // Check if we were canceled before we do any heavy processing of + // the shader variant data. + if (jobCancelListener.IsCancelled()) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; + return; + } - // Check if we were canceled before we do any heavy processing of - // the shader variant data. - if (jobCancelListener.IsCancelled()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; - return; - } + AZStd::string shaderStemNamePrefix = shaderFileName; + if (supervariantIndex.GetIndex() > 0) + { + shaderStemNamePrefix += supervariantInfo.m_name.GetStringView(); + } - ShaderResourceGroupAssets srgAssets; - RPI::Ptr shaderOptionGroupLayout = RPI::ShaderOptionGroupLayout::Create(); - AzslData azslData(sources); - if (!azslData.m_sources) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } + // We need these additional pieces of information To build a shader variant asset: + // 1- ShaderOptionsGroupLayout (Need to load it once, because it's the same acrosss all supervariants + RHIs) + // 2- entryFunctions + // 3- hlsl code. - // Load shader reflections - auto azslArtifactsOutcome = ShaderBuilderUtility::ObtainBuildArtifactsFromAzslBuilder( - ShaderVariantAssetBuilderName, azslData.m_sources->m_azslSourceFullPath, shaderPlatformInterface->GetAPIType(), request.m_platformInfo.m_identifier); - if (!azslArtifactsOutcome.IsSuccess()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } + // 1- ShaderOptionsGroupLayout + if (!shaderOptionGroupLayout) + { + shaderOptionGroupLayout = + LoadShaderOptionsGroupLayoutFromShaderAssetBuilder( + shaderPlatformInterface, request.m_platformInfo, azslc, shaderSourceFileFullPath, supervariantIndex); + if (!shaderOptionGroupLayout) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + } - BindingDependencies bindingDependencies; - RootConstantData rootConstantData; - AssetBuilderSDK::ProcessJobResultCode prepareResult = ShaderBuilderUtility::PopulateAzslDataFromJsonFiles( - ShaderVariantAssetBuilderName, - azslArtifactsOutcome.GetValue(), - azslData, - srgAssets, - shaderOptionGroupLayout, - bindingDependencies, - rootConstantData); - if (prepareResult != AssetBuilderSDK::ProcessJobResult_Success) - { - response.m_resultCode = prepareResult; - return; - } + // 2- entryFunctions. + AzslFunctions azslFunctions; + LoadShaderFunctionsFromShaderAssetBuilder( + shaderPlatformInterface, request.m_platformInfo, azslc, shaderSourceFileFullPath, supervariantIndex, azslFunctions); + if (azslFunctions.empty()) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + MapOfStringToStageType shaderEntryPoints; + if (shaderSourceDescriptor.m_programSettings.m_entryPoints.empty()) + { + AZ_TracePrintf( + ShaderVariantAssetBuilderName, + "ProgramSettings do not specify entry points, will use GetDefaultEntryPointsFromShader()\n"); + ShaderBuilderUtility::GetDefaultEntryPointsFromFunctionDataList(azslFunctions, shaderEntryPoints); + } + else + { + for (const auto& entryPoint : shaderSourceDescriptor.m_programSettings.m_entryPoints) + { + shaderEntryPoints[entryPoint.m_name] = entryPoint.m_type; + } + } - AZStd::string hlslSourcePath = azslArtifactsOutcome.GetValue()[ShaderBuilderUtility::AzslSubProducts::hlsl]; - Outcome hlslSourceContent = Utils::ReadFile(hlslSourcePath); - if (!hlslSourceContent.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "Failed to obtain shader source from %s. [%s]", hlslSourcePath.c_str(), hlslSourceContent.TakeError().c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } + // 3- hlslCode + AZStd::string hlslSourcePath; + AZStd::string hlslCode = LoadHlslFileFromShaderAssetBuilder( + shaderPlatformInterface, request.m_platformInfo, shaderSourceFileFullPath, supervariantIndex, hlslSourcePath); + if (hlslCode.empty() || hlslSourcePath.empty()) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } - GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderVariantAssetBuilderName); + // Setup the shader variant creation context: + ShaderVariantCreationContext shaderVariantCreationContext = + { + *shaderPlatformInterface, request.m_platformInfo, buildOptions.m_compilerArguments, request.m_tempDirPath, + startTime, + shaderSourceDescriptor, + *shaderOptionGroupLayout.get(), + shaderEntryPoints, + Uuid::CreateRandom(), + shaderStemNamePrefix, + hlslSourcePath, hlslCode + }; - auto shaderSourceLoadResult = ShaderBuilderUtility::LoadShaderDataJson(shaderSourceFileFullPath); - if (!shaderSourceLoadResult.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "Failed to load/parse Shader Descriptor JSON: %s", shaderSourceLoadResult.GetError().c_str()); - return; - } + AZStd::optional outputByproducts; + auto shaderVariantAssetOutcome = CreateShaderVariantAsset(variantInfo, shaderVariantCreationContext, outputByproducts); + if (!shaderVariantAssetOutcome.IsSuccess()) + { + AZ_Error(ShaderVariantAssetBuilderName, false, "%s\n", shaderVariantAssetOutcome.GetError().c_str()); + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + Data::Asset shaderVariantAsset = shaderVariantAssetOutcome.TakeValue(); - // The idea of this merge is that we have compiler options coming from 2 source: - // global options (from project Config/), and .shader options. - // We define a merge behavior that is: ".shader wins if set" - RHI::ShaderCompilerArguments mergedArguments = buildOptions.m_compilerArguments; - mergedArguments.Merge(shaderSourceLoadResult.GetValue().m_compiler); - Data::Asset shaderVariantAsset; - auto [success, byproducts] = CompileShaderVariantForAPI( - shaderVariantAsset, - shaderPlatformInterface, - azslData, - mergedArguments, - *shaderOptionGroupLayout, - shaderSourceDescriptor, - shaderAsset->GetShaderAssetBuildTimestamp(), - variantInfo, - srgAssets, - request, - bindingDependencies, - rootConstantData, - hlslSourcePath, - hlslSourceContent.GetValue(), - azslArtifactsOutcome.GetValue()[ShaderBuilderUtility::AzslSubProducts::om], - azslArtifactsOutcome.GetValue()[ShaderBuilderUtility::AzslSubProducts::ia]); - if (!success) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } + // Time to save the asset in the tmp folder so it ends up in the Cache folder. + const uint32_t productSubID = RPI::ShaderVariantAsset::MakeAssetProductSubId( + shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex.GetIndex(), + shaderVariantAsset->GetStableId()); + AssetBuilderSDK::JobProduct assetProduct; + if (!SerializeOutShaderVariantAsset(shaderVariantAsset, shaderStemNamePrefix, + request.m_tempDirPath, *shaderPlatformInterface, productSubID, + assetProduct)) + { + response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; + return; + } + response.m_outputProducts.push_back(assetProduct); - // Time to save the asset in the cache tmp folder. - const uint32_t productSubID = RPI::ShaderVariantAsset::MakeAssetProductSubId(shaderPlatformInterface->GetAPIUniqueIndex(), shaderVariantAsset->GetStableId()); - AssetBuilderSDK::JobProduct assetProduct; - if (!SerializeOutShaderVariantAsset(shaderVariantAsset, shaderSourceFileFullPath, request.m_tempDirPath, *shaderPlatformInterface, productSubID, assetProduct)) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - response.m_outputProducts.push_back(assetProduct); - - // add byproducts as job output products: - uint32_t subProductType = aznumeric_cast(RPI::ShaderAssetSubId::GeneratedHlslSource) + 1; - for (const AZStd::string& byproduct : byproducts.m_intermediatePaths) - { - AssetBuilderSDK::JobProduct jobProduct; - jobProduct.m_productFileName = byproduct; - jobProduct.m_productAssetType = Uuid::CreateName("DebugInfoByProduct-PdbOrDxilTxt"); - jobProduct.m_productSubID = RPI::ShaderVariantAsset::MakeAssetProductSubId( - shaderPlatformInterface->GetAPIType(), shaderVariantAsset->GetStableId(), subProductType++); - response.m_outputProducts.push_back(AZStd::move(jobProduct)); - } + if (outputByproducts) + { + // add byproducts as job output products: + uint32_t subProductType = RPI::ShaderVariantAsset::ShaderVariantAssetSubProductType; + for (const AZStd::string& byproduct : outputByproducts.value().m_intermediatePaths) + { + AssetBuilderSDK::JobProduct jobProduct; + jobProduct.m_productFileName = byproduct; + jobProduct.m_productAssetType = Uuid::CreateName("DebugInfoByProduct-PdbOrDxilTxt"); + jobProduct.m_productSubID = RPI::ShaderVariantAsset::MakeAssetProductSubId( + shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex.GetIndex(), shaderVariantAsset->GetStableId(), + subProductType++); + response.m_outputProducts.push_back(AZStd::move(jobProduct)); + } + } + supervariantIndexCounter++; + } // End of supervariant for block + } response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; } - static bool CreateShaderVariant( - ShaderVariantCreationContext& variantCreationContext, - const AzslData& azslData, - const RHI::ShaderCompilerArguments& shaderCompilerArguments, - RHI::ShaderPlatformInterface& shaderPlatformInterface, - const size_t colorAttachmentCount, - const RPI::ShaderVariantStableId variantStableId, - RPI::ShaderVariantAssetCreator& variantCreator) - { - bool isVariantValid = true; - - bool hasRasterProgram = false; - bool hasComputeProgram = false; - bool hasRayTracingProgram = false; - - const AZStd::unordered_map& shaderEntryPoints = variantCreationContext.m_shaderEntryPoints; - for (const auto& shaderEntryPoint : shaderEntryPoints) - { - auto shaderEntryName = shaderEntryPoint.first; - auto shaderStageType = shaderEntryPoint.second; - - AZ_TracePrintf(ShaderVariantAssetBuilderName, "Entry Point: %s", shaderEntryName.c_str()); - AZ_TracePrintf(ShaderVariantAssetBuilderName, "Begin compiling shader function \"%s\"", shaderEntryName.c_str()); - - auto assetBuilderShaderType = ShaderBuilderUtility::ToAssetBuilderShaderType(shaderStageType); - - AZStd::string variantShaderSourcePath; - - // Check if we need to prepend any code prefix - if (!azslData.m_shaderCodePrefix.empty()) - { - // Prepend any shader code prefix that we should apply to this variant - // and save it back to a file. - AZStd::string variantShaderSourceString(azslData.m_shaderCodePrefix); - variantShaderSourceString += variantCreationContext.m_hlslSourceContent; - - AZStd::string shaderAssetName = AZStd::string::format("%s_%s_%s_%u.hlsl", azslData.m_sources->m_azslFileName.c_str(), shaderEntryName.c_str(), - shaderPlatformInterface.GetAPIName().GetCStr(), variantStableId.GetIndex()); - AzFramework::StringFunc::Path::Join(variantCreationContext.m_tempDirPath.c_str(), shaderAssetName.c_str(), variantShaderSourcePath, true, true); - - auto outcome = Utils::WriteFile(variantShaderSourceString, variantShaderSourcePath); - if (!outcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "Failed to create file %s", variantShaderSourcePath.c_str()); - return false; - } - } - else - { - variantShaderSourcePath = variantCreationContext.m_hlslSourcePath; - } - - // Compile HLSL to the platform specific shader. - RHI::ShaderPlatformInterface::StageDescriptor descriptor; - bool shaderWasCompiled = shaderPlatformInterface.CompilePlatformInternal( - variantCreationContext.m_platformInfo, - variantShaderSourcePath, - shaderEntryName, - assetBuilderShaderType, - variantCreationContext.m_tempDirPath, - descriptor, - shaderCompilerArguments); - - if (!shaderWasCompiled) - { - isVariantValid = false; - AZ_Error(ShaderVariantAssetBuilderName, false, "Could not compile the shader function %s", shaderEntryName.c_str()); - continue; // Using continue to report all the errors found - } - // bubble up the byproducts to the caller by moving them to the context. - variantCreationContext.m_outputByproducts.emplace(AZStd::move(descriptor.m_byProducts)); - - hasRasterProgram |= shaderPlatformInterface.IsShaderStageForRaster(assetBuilderShaderType); - hasComputeProgram |= shaderPlatformInterface.IsShaderStageForCompute(assetBuilderShaderType); - hasRayTracingProgram |= shaderPlatformInterface.IsShaderStageForRayTracing(assetBuilderShaderType); - - RHI::Ptr shaderStageFunction = shaderPlatformInterface.CreateShaderStageFunction(descriptor); - variantCreator.SetShaderFunction(ToRHIShaderStage(assetBuilderShaderType), shaderStageFunction); - - if (descriptor.m_byProducts.m_dynamicBranchCount != AZ::RHI::ShaderPlatformInterface::ByProducts::UnknownDynamicBranchCount) - { - AZ_TracePrintf(ShaderVariantAssetBuilderName, "Finished compiling shader function. Number of dynamic branches: %u", descriptor.m_byProducts.m_dynamicBranchCount); - } - else - { - AZ_TracePrintf(ShaderVariantAssetBuilderName, "Finished compiling shader function. Number of dynamic branches: unknown"); - } - } - - if (hasRasterProgram && hasComputeProgram) - { - AZ_Error(ShaderVariantAssetBuilderName, false, "Shader asset descriptor has a program variant that defines both a raster entry point and a compute entry point."); - isVariantValid = false; - } - - if (!hasRasterProgram && !hasComputeProgram && !hasRayTracingProgram) - { - AZStd::string entryPointNames = ShaderBuilderUtility::GetAcceptableDefaultEntryPointNames(azslData); - - AZ_Error(ShaderVariantAssetBuilderName, false, "Shader asset descriptor has a program variant that does not define any entry points. Either declare entry points in the .shader file, or use one of the available default names (not case-sensitive): [%s]", entryPointNames.data()); - - isVariantValid = false; - } - - if (isVariantValid && hasRasterProgram) - { - // Set the various states to what is in the descriptor first as this gives us - // the baseline. Then whatever is specified in the variant overrides the baseline - // and that will be used by the runtime. - - RHI::TargetBlendState targetBlendState = variantCreationContext.m_shaderSourceDataDescriptor.m_blendState; - RHI::DepthStencilState depthStencilState = variantCreationContext.m_shaderSourceDataDescriptor.m_depthStencilState; - RHI::RasterState rasterState = variantCreationContext.m_shaderSourceDataDescriptor.m_rasterState; - - // [GFX TODO][ATOM-930] - Shader Variant System Phase 2 - Investigation and Prototyping - // The entire Q3 epic will deal will prototyping different shader variants approaches - // A lot of code in prototype stage is disabled before a clearer vision for the system - // is in place, including the unclear way to set states below. - // RHI::MergeStateInto() needs to be further reviewed because it's not possible to - // override the base state with a variant state which sets a default value (for example) - // The states are further duplicated which suggest that they could instead just exist - // as variants and skip the merge step. This code, if it persists, should move to ShaderDataParser - // RHI::MergeStateInto(programVariant.m_blendState, targetBlendState); - // RHI::MergeStateInto(programVariant.m_depthStencilState.m_depth, depthStencilState.m_depth); - // RHI::MergeStateInto(programVariant.m_depthStencilState.m_stencil, depthStencilState.m_stencil); - // RHI::MergeStateInto(programVariant.m_rasterState, rasterState); - - RHI::RenderStates renderStates; - renderStates.m_rasterState = rasterState; - renderStates.m_depthStencilState = depthStencilState; - // [GFX TODO][ATOM-930] We should support unique blend states per RT - for (size_t i = 0; i < colorAttachmentCount; ++i) - { - renderStates.m_blendState.m_targets[i] = targetBlendState; - } - - variantCreator.SetRenderStates(renderStates); - } - - return isVariantValid; - } - - - AZ::Outcome, AZStd::string> ShaderVariantAssetBuilder::CreateShaderVariantAssetForAPI( - const RPI::ShaderVariantListSourceData::VariantInfo& variantInfo, - ShaderVariantCreationContext& variantCreationContext, - RHI::ShaderPlatformInterface& shaderPlatformInterface, - AzslData& azslData, - const RHI::ShaderCompilerArguments& shaderCompilerArguments, - const AZStd::string& pathToOmJson, - const AZStd::string& pathToIaJson) - { - RPI::ShaderInputContract shaderInputContract; - RPI::ShaderOutputContract shaderOutputContract; - size_t colorAttachmentCount = 0; - ShaderBuilderUtility::CreateShaderInputAndOutputContracts(azslData, variantCreationContext.m_shaderEntryPoints, variantCreationContext.m_shaderOptionGroupLayout, pathToOmJson, - pathToIaJson, shaderInputContract, shaderOutputContract, colorAttachmentCount); - - const RPI::ShaderOptionGroupLayout& shaderOptionGroupLayout = variantCreationContext.m_shaderOptionGroupLayout; - // Temporary structure used for sorting and caching intermediate results - struct OptionCache - { - AZ::Name m_optionName; - AZ::Name m_valueName; - RPI::ShaderOptionIndex m_optionIndex; // Cached m_optionName - RPI::ShaderOptionValue m_value; // Cached m_valueName - }; - AZStd::vector optionList; - // We can not have more options than the number of options in the layout: - optionList.reserve(variantCreationContext.m_shaderOptionGroupLayout.GetShaderOptionCount()); - - // This loop will validate and cache the indices for each option value: - for (const auto& shaderOption : variantInfo.m_options) - { - Name optionName{ shaderOption.first }; - Name optionValue{ shaderOption.second }; - - RPI::ShaderOptionIndex optionIndex = shaderOptionGroupLayout.FindShaderOptionIndex(optionName); - if (optionIndex.IsNull()) - { - return AZ::Failure(AZStd::string::format("Invalid shader option: %s", optionName.GetCStr())); - } - - const RPI::ShaderOptionDescriptor& option = shaderOptionGroupLayout.GetShaderOption(optionIndex); - RPI::ShaderOptionValue value = option.FindValue(optionValue); - if (value.IsNull()) - { - return AZ::Failure(AZStd::string::format("Invalid value (%s) for shader option: %s", optionValue.GetCStr(), optionName.GetCStr())); - } - - optionList.push_back(OptionCache{ optionName, optionValue, optionIndex, value }); - } - - // Create one instance of the shader variant - RPI::ShaderOptionGroup optionGroup(&shaderOptionGroupLayout); - - // m_shaderCodePrefix contains preprocessing macro defines to switch options on and off in our shader binary - // Clear it for this variant so we can add each option as we define it - azslData.m_shaderCodePrefix.clear(); - - // We want to go over all options listed in the variant and set their respective values - // This loop will populate the optionGroup and m_shaderCodePrefix in order of the option priority - for (const auto& optionCache : optionList) - { - const RPI::ShaderOptionDescriptor& option = shaderOptionGroupLayout.GetShaderOption(optionCache.m_optionIndex); - - // Assign the option value specified in the variant: - option.Set(optionGroup, optionCache.m_value); - - // Populate all shader option defines. We have already confirmed they're valid. - azslData.m_shaderCodePrefix += AZStd::string::format("#define %s_OPTION_DEF %s\n", optionCache.m_optionName.GetCStr(), optionCache.m_valueName.GetCStr()); - } - - AZ_TracePrintf(ShaderVariantAssetBuilderName, "Variant StableId: %u", variantInfo.m_stableId); - AZ_TracePrintf(ShaderVariantAssetBuilderName, "Variant Shader Options: %s", optionGroup.ToString().c_str()); - - const RPI::ShaderVariantStableId shaderVariantStableId{variantInfo.m_stableId}; - - // By this time the optionGroup was populated with all option values for the variant and - // the m_shaderCodePrefix contains all option related preprocessing macros - // Let's add the requested variant: - RPI::ShaderVariantAssetCreator shaderVariantAssetCreator; - shaderVariantAssetCreator.Begin(variantCreationContext.m_assetId, optionGroup.GetShaderVariantId(), shaderVariantStableId, & shaderOptionGroupLayout); - shaderVariantAssetCreator.SetShaderAssetBuildTimestamp(variantCreationContext.m_shaderAssetBuildTimestamp); - shaderVariantAssetCreator.SetInputContract(shaderInputContract); - shaderVariantAssetCreator.SetOutputContract(shaderOutputContract); - - if (!CreateShaderVariant( - variantCreationContext, - azslData, - shaderCompilerArguments, - shaderPlatformInterface, - colorAttachmentCount, - shaderVariantStableId, - shaderVariantAssetCreator)) - { - return AZ::Failure(AZStd::string::format("Failed to create shader variant with StableId=%u", shaderVariantStableId.GetIndex())); - } - - Data::Asset shaderVariantAsset; - shaderVariantAssetCreator.End(shaderVariantAsset); - return AZ::Success(AZStd::move(shaderVariantAsset)); - } - - bool ShaderVariantAssetBuilder::SerializeOutShaderVariantAsset(const Data::Asset shaderVariantAsset, const AZStd::string& shaderSourceFileFullPath, const AZStd::string& tempDirPath, + bool ShaderVariantAssetBuilder::SerializeOutShaderVariantAsset( + const Data::Asset shaderVariantAsset, const AZStd::string& shaderStemNamePrefix, + const AZStd::string& tempDirPath, const RHI::ShaderPlatformInterface& shaderPlatformInterface, const uint32_t productSubID, AssetBuilderSDK::JobProduct& assetProduct) { - AZStd::string shaderName; - AzFramework::StringFunc::Path::Split(shaderSourceFileFullPath.c_str(), nullptr /*drive*/, nullptr /*path*/, &shaderName, nullptr /*extension*/); - AZStd::string filename = AZStd::string::format("%s_%s_%u.%s", shaderName.c_str(), shaderPlatformInterface.GetAPIName().GetCStr(), shaderVariantAsset->GetStableId().GetIndex(), RPI::ShaderVariantAsset::Extension); + AZStd::string filename = AZStd::string::format( + "%s_%s_%u.%s", shaderStemNamePrefix.c_str(), shaderPlatformInterface.GetAPIName().GetCStr(), + shaderVariantAsset->GetStableId().GetIndex(), RPI::ShaderVariantAsset::Extension); AZStd::string assetPath; AzFramework::StringFunc::Path::ConstructFull(tempDirPath.c_str(), filename.c_str(), assetPath, true); @@ -1057,5 +824,154 @@ namespace AZ return true; } + + AZ::Outcome, AZStd::string> ShaderVariantAssetBuilder::CreateShaderVariantAsset( + const RPI::ShaderVariantListSourceData::VariantInfo& shaderVariantInfo, + ShaderVariantCreationContext& creationContext, + AZStd::optional& outputByproducts) + { + // Temporary structure used for sorting and caching intermediate results + struct OptionCache + { + AZ::Name m_optionName; + AZ::Name m_valueName; + RPI::ShaderOptionIndex m_optionIndex; // Cached m_optionName + RPI::ShaderOptionValue m_value; // Cached m_valueName + }; + AZStd::vector optionList; + // We can not have more options than the number of options in the layout: + optionList.reserve(creationContext.m_shaderOptionGroupLayout.GetShaderOptionCount()); + + // This loop will validate and cache the indices for each option value: + for (const auto& shaderOption : shaderVariantInfo.m_options) + { + Name optionName{shaderOption.first}; + Name optionValue{shaderOption.second}; + + RPI::ShaderOptionIndex optionIndex = creationContext.m_shaderOptionGroupLayout.FindShaderOptionIndex(optionName); + if (optionIndex.IsNull()) + { + return AZ::Failure(AZStd::string::format("Invalid shader option: %s", optionName.GetCStr())); + } + + const RPI::ShaderOptionDescriptor& option = creationContext.m_shaderOptionGroupLayout.GetShaderOption(optionIndex); + RPI::ShaderOptionValue value = option.FindValue(optionValue); + if (value.IsNull()) + { + return AZ::Failure( + AZStd::string::format("Invalid value (%s) for shader option: %s", optionValue.GetCStr(), optionName.GetCStr())); + } + + optionList.push_back(OptionCache{optionName, optionValue, optionIndex, value}); + } + + // Create one instance of the shader variant + RPI::ShaderOptionGroup optionGroup(&creationContext.m_shaderOptionGroupLayout); + + //! Contains the series of #define macro values that define a variant. Can be empty (root variant). + //! If this string is NOT empty, a new temporary hlsl file will be created that will be the combination + //! of this string + @m_hlslSourceContent. + AZStd::string hlslCodeToPrependForVariant; + + // We want to go over all options listed in the variant and set their respective values + // This loop will populate the optionGroup and m_shaderCodePrefix in order of the option priority + for (const auto& optionCache : optionList) + { + const RPI::ShaderOptionDescriptor& option = creationContext.m_shaderOptionGroupLayout.GetShaderOption(optionCache.m_optionIndex); + + // Assign the option value specified in the variant: + option.Set(optionGroup, optionCache.m_value); + + // Populate all shader option defines. We have already confirmed they're valid. + hlslCodeToPrependForVariant += AZStd::string::format( + "#define %s_OPTION_DEF %s\n", optionCache.m_optionName.GetCStr(), optionCache.m_valueName.GetCStr()); + } + + AZStd::string variantShaderSourcePath; + // Check if we need to prepend any code prefix + if (!hlslCodeToPrependForVariant.empty()) + { + // Prepend any shader code prefix that we should apply to this variant + // and save it back to a file. + AZStd::string variantShaderSourceString(hlslCodeToPrependForVariant); + variantShaderSourceString += creationContext.m_hlslSourceContent; + + AZStd::string shaderAssetName = AZStd::string::format( + "%s_%s_%u.hlsl", creationContext.m_shaderStemNamePrefix.c_str(), + creationContext.m_shaderPlatformInterface.GetAPIName().GetCStr(), shaderVariantInfo.m_stableId); + AzFramework::StringFunc::Path::Join( + creationContext.m_tempDirPath.c_str(), shaderAssetName.c_str(), variantShaderSourcePath, true, true); + + auto outcome = Utils::WriteFile(variantShaderSourceString, variantShaderSourcePath); + if (!outcome.IsSuccess()) + { + return AZ::Failure(AZStd::string::format("Failed to create file %s", variantShaderSourcePath.c_str())); + } + } + else + { + variantShaderSourcePath = creationContext.m_hlslSourcePath; + } + + AZ_TracePrintf(ShaderVariantAssetBuilderName, "Variant StableId: %u", shaderVariantInfo.m_stableId); + AZ_TracePrintf(ShaderVariantAssetBuilderName, "Variant Shader Options: %s", optionGroup.ToString().c_str()); + + const RPI::ShaderVariantStableId shaderVariantStableId{shaderVariantInfo.m_stableId}; + + // By this time the optionGroup was populated with all option values for the variant and + // the m_shaderCodePrefix contains all option related preprocessing macros + // Let's add the requested variant: + RPI::ShaderVariantAssetCreator variantCreator; + RPI::ShaderOptionGroup shaderOptions{&creationContext.m_shaderOptionGroupLayout, optionGroup.GetShaderVariantId()}; + variantCreator.Begin( + creationContext.m_shaderVariantAssetId, optionGroup.GetShaderVariantId(), shaderVariantStableId, + shaderOptions.IsFullySpecified()); + variantCreator.SetBuildTimestamp(creationContext.m_assetBuildTimestamp); + + const AZStd::unordered_map& shaderEntryPoints = creationContext.m_shaderEntryPoints; + for (const auto& shaderEntryPoint : shaderEntryPoints) + { + auto shaderEntryName = shaderEntryPoint.first; + auto shaderStageType = shaderEntryPoint.second; + + AZ_TracePrintf(ShaderVariantAssetBuilderName, "Entry Point: %s", shaderEntryName.c_str()); + AZ_TracePrintf(ShaderVariantAssetBuilderName, "Begin compiling shader function \"%s\"", shaderEntryName.c_str()); + + auto assetBuilderShaderType = ShaderBuilderUtility::ToAssetBuilderShaderType(shaderStageType); + + // Compile HLSL to the platform specific shader. + RHI::ShaderPlatformInterface::StageDescriptor descriptor; + bool shaderWasCompiled = creationContext.m_shaderPlatformInterface.CompilePlatformInternal( + creationContext.m_platformInfo, variantShaderSourcePath, shaderEntryName, assetBuilderShaderType, + creationContext.m_tempDirPath, descriptor, creationContext.m_shaderCompilerArguments); + + if (!shaderWasCompiled) + { + return AZ::Failure(AZStd::string::format("Could not compile the shader function %s", shaderEntryName.c_str())); + } + // bubble up the byproducts to the caller by moving them to the context. + outputByproducts.emplace(AZStd::move(descriptor.m_byProducts)); + + RHI::Ptr shaderStageFunction = creationContext.m_shaderPlatformInterface.CreateShaderStageFunction(descriptor); + variantCreator.SetShaderFunction(ToRHIShaderStage(assetBuilderShaderType), shaderStageFunction); + + if (descriptor.m_byProducts.m_dynamicBranchCount != AZ::RHI::ShaderPlatformInterface::ByProducts::UnknownDynamicBranchCount) + { + AZ_TracePrintf( + ShaderVariantAssetBuilderName, "Finished compiling shader function. Number of dynamic branches: %u", + descriptor.m_byProducts.m_dynamicBranchCount); + } + else + { + AZ_TracePrintf( + ShaderVariantAssetBuilderName, "Finished compiling shader function. Number of dynamic branches: unknown"); + } + } + + Data::Asset shaderVariantAsset; + variantCreator.End(shaderVariantAsset); + return AZ::Success(AZStd::move(shaderVariantAsset)); + } + } // ShaderBuilder } // AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder.h index 84ab4fbc70..45bfd54e94 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder.h +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder.h @@ -29,25 +29,34 @@ namespace AZ { struct AzslData; + //! This is nothing more than a class to help consolidate all + //! the data needed to generate a shader variant and prevent + //! all the functions involved in the process to have too many + //! arguments. struct ShaderVariantCreationContext { - const Data::AssetId m_assetId; - const AZStd::string& m_hlslSourcePath; - const AZStd::string& m_hlslSourceContent; - const RPI::ShaderSourceData& m_shaderSourceDataDescriptor; - const AZStd::string& m_tempDirPath; //! Used to write temporary files during shader compilation, like *.hlsl, or *.air, or *.metallib, etc. + RHI::ShaderPlatformInterface& m_shaderPlatformInterface; const AssetBuilderSDK::PlatformInfo& m_platformInfo; + const RHI::ShaderCompilerArguments& m_shaderCompilerArguments; + //! Used to write temporary files during shader compilation, like *.hlsl, or *.air, or *.metallib, etc. + const AZStd::string& m_tempDirPath; + //! Used to synchronize versions of the ShaderAsset and ShaderVariantAsset, + //! especially during hot-reload. A (ShaderVariantAsset.timestamp) >= (ShaderAsset.timestamp). + const AZStd::sys_time_t m_assetBuildTimestamp; + const RPI::ShaderSourceData& m_shaderSourceDataDescriptor; const RPI::ShaderOptionGroupLayout& m_shaderOptionGroupLayout; const MapOfStringToStageType& m_shaderEntryPoints; - AZStd::sys_time_t m_shaderAssetBuildTimestamp; //!< Copied from the ShaderAsset, used to synchronize versions of the ShaderAsset and ShaderVariantAsset, especially during hot-reload. - AZStd::optional m_outputByproducts; + const Data::AssetId m_shaderVariantAssetId; + const AZStd::string& m_shaderStemNamePrefix; //- + const AZStd::string& m_hlslSourcePath; + const AZStd::string& m_hlslSourceContent; }; class ShaderVariantAssetBuilder : public AssetBuilderSDK::AssetBuilderCommandBus::Handler { public: - AZ_TYPE_INFO(ShaderVariantAssetBuilder, "{2F84C802-95AF-4B73-9017-2DA9AA8C0C89}"); + AZ_TYPE_INFO(ShaderVariantAssetBuilder, "{C959AEC2-2083-4488-AD88-F61B1144535B}"); static constexpr char ShaderVariantAssetBuilderJobKey[] = "Shader Variant Asset"; @@ -61,16 +70,14 @@ namespace AZ //! The ShaderVariantAsset returned by this function won't be written to the filesystem. //! You should call SerializeOutShaderVariantAsset to write it to the temp folder assigned //! by the asset processor. - static AZ::Outcome, AZStd::string> CreateShaderVariantAssetForAPI( + static AZ::Outcome, AZStd::string> CreateShaderVariantAsset( const RPI::ShaderVariantListSourceData::VariantInfo& shaderVariantInfo, - ShaderVariantCreationContext& context, - RHI::ShaderPlatformInterface& shaderPlatformInterface, - AzslData& azslData, - const RHI::ShaderCompilerArguments& shaderCompilerArguments, - const AZStd::string& pathToOmJson, - const AZStd::string& pathToIaJson); + ShaderVariantCreationContext& creationContext, + AZStd::optional& outputByproducts); - static bool SerializeOutShaderVariantAsset(const Data::Asset shaderVariantAsset, const AZStd::string& shaderFullPath, const AZStd::string& tempDirPath, + static bool SerializeOutShaderVariantAsset( + const Data::Asset shaderVariantAsset, + const AZStd::string& shaderStemNamePrefix, const AZStd::string& tempDirPath, const RHI::ShaderPlatformInterface& shaderPlatformInterface, const uint32_t productSubID, AssetBuilderSDK::JobProduct& assetProduct); // AssetBuilderSDK::AssetBuilderCommandBus interface overrides ... @@ -79,6 +86,11 @@ namespace AZ private: AZ_DISABLE_COPY_MOVE(ShaderVariantAssetBuilder); + static constexpr uint32_t ShaderVariantLoadErrorParam = 0; + static constexpr uint32_t ShaderSourceFilePathJobParam = 2; + static constexpr uint32_t ShaderVariantJobVariantParam = 3; + static constexpr uint32_t ShouldExitEarlyFromProcessJobParam = 4; + //! Called from ProcessJob when the job is supposed to create a ShaderVariantTreeAsset. void ProcessShaderVariantTreeJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const; diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.cpp deleted file mode 100644 index 961e54c7a8..0000000000 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.cpp +++ /dev/null @@ -1,978 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -*/ - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ShaderAssetBuilder2.h" -#include "ShaderBuilderUtility.h" -#include "AzslData.h" -#include "AzslCompiler.h" -#include "AzslBuilder.h" -#include -#include -#include -#include "AtomShaderConfig.h" - -namespace AZ -{ - namespace ShaderBuilder - { - static constexpr char ShaderVariantAssetBuilder2Name[] = "ShaderVariantAssetBuilder2"; - - static void AddShaderAssetJobDependency2( - AssetBuilderSDK::JobDescriptor& jobDescriptor, const AssetBuilderSDK::PlatformInfo& platformInfo, - const AZStd::string& shaderVariantListFilePath, const AZStd::string& shaderFilePath) - { - AZStd::vector possibleDependencies = - AZ::RPI::AssetUtils::GetPossibleDepenencyPaths(shaderVariantListFilePath, shaderFilePath); - for (auto& file : possibleDependencies) - { - AssetBuilderSDK::JobDependency jobDependency; - jobDependency.m_jobKey = ShaderAssetBuilder2::ShaderAssetBuilder2JobKey; - jobDependency.m_platformIdentifier = platformInfo.m_identifier; - jobDependency.m_type = AssetBuilderSDK::JobDependencyType::Order; - jobDependency.m_sourceFile.m_sourceFileDependencyPath = file; - jobDescriptor.m_jobDependencyList.push_back(jobDependency); - } - } - - //! Returns true if @sourceFileFullPath starts with a valid asset processor scan folder, false otherwise. - //! In case of true, it splits @sourceFileFullPath into @scanFolderFullPath and @filePathFromScanFolder. - //! @sourceFileFullPath The full path to a source asset file. - //! @scanFolderFullPath [out] Gets the full path of the scan folder where the source file is located. - //! @filePathFromScanFolder [out] Get the file path relative to @scanFolderFullPath. - static bool SplitSourceAssetPathIntoScanFolderFullPathAndRelativeFilePath2(const AZStd::string& sourceFileFullPath, AZStd::string& scanFolderFullPath, AZStd::string& filePathFromScanFolder) - { - AZStd::vector scanFolders; - bool success = false; - AzToolsFramework::AssetSystemRequestBus::BroadcastResult(success, &AzToolsFramework::AssetSystem::AssetSystemRequest::GetAssetSafeFolders, scanFolders); - if (!success) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Couldn't get the scan folders"); - return false; - } - - for (AZStd::string scanFolder : scanFolders) - { - AzFramework::StringFunc::Path::Normalize(scanFolder); - if (!AZ::StringFunc::StartsWith(sourceFileFullPath, scanFolder)) - { - continue; - } - const size_t scanFolderSize = scanFolder.size(); - const size_t sourcePathSize = sourceFileFullPath.size(); - scanFolderFullPath = scanFolder; - filePathFromScanFolder = sourceFileFullPath.substr(scanFolderSize + 1, sourcePathSize - scanFolderSize - 1); - return true; - } - - return false; - } - - //! Validates if a given .shadervariantlist file is located at the correct path for a given .shader full path. - //! There are two valid paths: - //! 1- Lower Precedence: The same folder where the .shader file is located. - //! 2- Higher Precedence: //ShaderVariants/. - //! The "Higher Precedence" path gives the option to game projects to override what variants to generate. If this - //! file exists then the "Lower Precedence" path is disregarded. - //! A .shader full path is located under an AP scan folder. - //! Example: "/Gems/Atom/Feature/Common/Assets/Materials/Types/StandardPBR_ForwardPass.shader" - //! - In this example the Scan Folder is "/Gems/Atom/Feature/Common/Assets", while the subfolder is "Materials/Types". - //! The "Higher Precedence" expected valid location for the .shadervariantlist would be: - //! - //ShaderVariants/Materials/Types/StandardPBR_ForwardPass.shadervariantlist. - //! The "Lower Precedence" valid location would be: - //! - /Gems/Atom/Feature/Common/Assets/Materials/Types/StandardPBR_ForwardPass.shadervariantlist. - //! @shouldExitEarlyFromProcessJob [out] Set to true if ProcessJob should do no work but return successfully. - //! Set to false if ProcessJob should do work and create assets. - //! When @shaderVariantListFileFullPath is provided by a Gem/Feature instead of the Game Project - //! We check if the game project already defined the shader variant list, and if it did it means - //! ProcessJob should do no work, but return successfully nonetheless. - static bool ValidateShaderVariantListLocation2(const AZStd::string& shaderVariantListFileFullPath, - const AZStd::string& shaderFileFullPath, bool& shouldExitEarlyFromProcessJob) - { - AZStd::string scanFolderFullPath; - AZStd::string shaderProductFileRelativePath; - if (!SplitSourceAssetPathIntoScanFolderFullPathAndRelativeFilePath2(shaderFileFullPath, scanFolderFullPath, shaderProductFileRelativePath)) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Couldn't get the scan folder for shader [%s]", shaderFileFullPath.c_str()); - return false; - } - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "For shader [%s], Scan folder full path [%s], relative file path [%s]", shaderFileFullPath.c_str(), scanFolderFullPath.c_str(), shaderProductFileRelativePath.c_str()); - - AZStd::string shaderVariantListFileRelativePath = shaderProductFileRelativePath; - AzFramework::StringFunc::Path::ReplaceExtension(shaderVariantListFileRelativePath, RPI::ShaderVariantListSourceData::Extension); - - const char * gameProjectPath = nullptr; - AzToolsFramework::AssetSystemRequestBus::BroadcastResult(gameProjectPath, &AzToolsFramework::AssetSystem::AssetSystemRequest::GetAbsoluteDevGameFolderPath); - - AZStd::string expectedHigherPrecedenceFileFullPath; - AzFramework::StringFunc::Path::Join(gameProjectPath, RPI::ShaderVariantTreeAsset::CommonSubFolder, expectedHigherPrecedenceFileFullPath, false /* handle directory overlap? */, false /* be case insensitive? */); - AzFramework::StringFunc::Path::Join(expectedHigherPrecedenceFileFullPath.c_str(), shaderProductFileRelativePath.c_str(), expectedHigherPrecedenceFileFullPath, false /* handle directory overlap? */, false /* be case insensitive? */); - AzFramework::StringFunc::Path::ReplaceExtension(expectedHigherPrecedenceFileFullPath, AZ::RPI::ShaderVariantListSourceData::Extension); - AzFramework::StringFunc::Path::Normalize(expectedHigherPrecedenceFileFullPath); - - AZStd::string normalizedShaderVariantListFileFullPath = shaderVariantListFileFullPath; - AzFramework::StringFunc::Path::Normalize(normalizedShaderVariantListFileFullPath); - - if (expectedHigherPrecedenceFileFullPath == normalizedShaderVariantListFileFullPath) - { - // Whenever the Game Project declares a *.shadervariantlist file we always do work. - shouldExitEarlyFromProcessJob = false; - return true; - } - - AZ::Data::AssetInfo assetInfo; - AZStd::string watchFolder; - bool foundHigherPrecedenceAsset = false; - AzToolsFramework::AssetSystemRequestBus::BroadcastResult(foundHigherPrecedenceAsset - , &AzToolsFramework::AssetSystem::AssetSystemRequest::GetSourceInfoBySourcePath - , expectedHigherPrecedenceFileFullPath.c_str(), assetInfo, watchFolder); - if (foundHigherPrecedenceAsset) - { - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "The shadervariantlist [%s] has been overriden by the game project with [%s]", - normalizedShaderVariantListFileFullPath.c_str(), expectedHigherPrecedenceFileFullPath.c_str()); - shouldExitEarlyFromProcessJob = true; - return true; - } - - // Check the "Lower Precedence" case, .shader path == .shadervariantlist path. - AZStd::string normalizedShaderFileFullPath = shaderFileFullPath; - AzFramework::StringFunc::Path::Normalize(normalizedShaderFileFullPath); - - AZStd::string normalizedShaderFileFullPathWithoutExtension = normalizedShaderFileFullPath; - AzFramework::StringFunc::Path::StripExtension(normalizedShaderFileFullPathWithoutExtension); - - AZStd::string normalizedShaderVariantListFileFullPathWithoutExtension = normalizedShaderVariantListFileFullPath; - AzFramework::StringFunc::Path::StripExtension(normalizedShaderVariantListFileFullPathWithoutExtension); - -#if AZ_TRAIT_OS_USE_WINDOWS_FILE_PATHS - //In certain circumstances, the capitalization of the drive letter may not match - const bool caseSensitive = false; -#else - //On the other platforms there's no drive letter, so it should be a non-issue. - const bool caseSensitive = true; -#endif - if (!StringFunc::Equal(normalizedShaderFileFullPathWithoutExtension.c_str(), normalizedShaderVariantListFileFullPathWithoutExtension.c_str(), caseSensitive)) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "For shader file at path [%s], the shader variant list [%s] is expected to be located at [%s.%s] or [%s]" - , normalizedShaderFileFullPath.c_str(), normalizedShaderVariantListFileFullPath.c_str(), - normalizedShaderFileFullPathWithoutExtension.c_str(), RPI::ShaderVariantListSourceData::Extension, - expectedHigherPrecedenceFileFullPath.c_str()); - return false; - } - - shouldExitEarlyFromProcessJob = false; - return true; - } - - // We treat some issues as warnings and return "Success" from CreateJobs allows us to report the dependency. - // If/when a valid dependency file appears, that will trigger the ShaderVariantAssetBuilder2 to run again. - // Since CreateJobs will pass, we forward this message to ProcessJob which will report it as an error. - struct LoadResult2 - { - enum class Code - { - Error, - DeferredError, - Success - }; - - Code m_code; - AZStd::string m_deferredMessage; // Only used when m_code == DeferredError - }; - - static LoadResult2 LoadShaderVariantList2(const AZStd::string& variantListFullPath, RPI::ShaderVariantListSourceData& shaderVariantList, AZStd::string& shaderSourceFileFullPath, - bool& shouldExitEarlyFromProcessJob) - { - // Need to get the name of the shader file from the template so that we can preprocess the shader data and setup - // source file dependencies. - if (!RPI::JsonUtils::LoadObjectFromFile(variantListFullPath, shaderVariantList)) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Failed to parse Shader Variant List Descriptor JSON from [%s]", variantListFullPath.c_str()); - return LoadResult2{LoadResult2::Code::Error}; - } - - const AZStd::string resolvedShaderPath = AZ::RPI::AssetUtils::ResolvePathReference(variantListFullPath, shaderVariantList.m_shaderFilePath); - if (!AZ::IO::LocalFileIO::GetInstance()->Exists(resolvedShaderPath.c_str())) - { - return LoadResult2{LoadResult2::Code::DeferredError, AZStd::string::format("The shader path [%s] was not found.", resolvedShaderPath.c_str())}; - } - - shaderSourceFileFullPath = resolvedShaderPath; - - if (!ValidateShaderVariantListLocation2(variantListFullPath, shaderSourceFileFullPath, shouldExitEarlyFromProcessJob)) - { - return LoadResult2{LoadResult2::Code::Error}; - } - - if (shouldExitEarlyFromProcessJob) - { - return LoadResult2{LoadResult2::Code::Success}; - } - - auto resultOutcome = RPI::ShaderVariantTreeAssetCreator::ValidateStableIdsAreUnique(shaderVariantList.m_shaderVariants); - if (!resultOutcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Variant info validation error: %s", resultOutcome.GetError().c_str()); - return LoadResult2{LoadResult2::Code::Error}; - } - - if (!IO::FileIOBase::GetInstance()->Exists(shaderSourceFileFullPath.c_str())) - { - return LoadResult2{LoadResult2::Code::DeferredError, AZStd::string::format("ShaderSourceData file does not exist: %s.", shaderSourceFileFullPath.c_str())}; - } - - return LoadResult2{LoadResult2::Code::Success}; - } // LoadShaderVariantListAndAzslSource - - void ShaderVariantAssetBuilder2::CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const - { - AZStd::string variantListFullPath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.data(), request.m_sourceFile.data(), variantListFullPath, true); - - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "CreateJobs for Shader Variant List \"%s\"\n", variantListFullPath.data()); - - RPI::ShaderVariantListSourceData shaderVariantList; - AZStd::string shaderSourceFileFullPath; - bool shouldExitEarlyFromProcessJob = false; - const LoadResult2 loadResult = LoadShaderVariantList2(variantListFullPath, shaderVariantList, shaderSourceFileFullPath, shouldExitEarlyFromProcessJob); - - if (loadResult.m_code == LoadResult2::Code::Error) - { - response.m_result = AssetBuilderSDK::CreateJobsResultCode::Failed; - return; - } - - if (loadResult.m_code == LoadResult2::Code::DeferredError || shouldExitEarlyFromProcessJob) - { - for (const AssetBuilderSDK::PlatformInfo& info : request.m_enabledPlatforms) - { - // Let's create fake jobs that will fail ProcessJob, but are useful to establish dependency on the shader file. - AssetBuilderSDK::JobDescriptor jobDescriptor; - - jobDescriptor.m_priority = -5000; - jobDescriptor.m_critical = false; - jobDescriptor.m_jobKey = ShaderVariantAssetBuilder2JobKey; - jobDescriptor.SetPlatformIdentifier(info.m_identifier.data()); - - AddShaderAssetJobDependency2(jobDescriptor, info, variantListFullPath, shaderVariantList.m_shaderFilePath); - - if (loadResult.m_code == LoadResult2::Code::DeferredError) - { - jobDescriptor.m_jobParameters.emplace(ShaderVariantLoadErrorParam, loadResult.m_deferredMessage); - } - - if (shouldExitEarlyFromProcessJob) - { - // The value doesn't matter, what matters is the presence of the key which will - // signal that no assets should be produced on behalf of this shadervariantlist because - // the game project overrode it. - jobDescriptor.m_jobParameters.emplace(ShouldExitEarlyFromProcessJobParam, variantListFullPath); - } - - response.m_createJobOutputs.push_back(jobDescriptor); - } - response.m_result = AssetBuilderSDK::CreateJobsResultCode::Success; - return; - } - - for (const AssetBuilderSDK::PlatformInfo& info : request.m_enabledPlatforms) - { - AZ_TraceContext("For platform", info.m_identifier.data()); - - // First job is for the ShaderVariantTreeAsset. - { - AssetBuilderSDK::JobDescriptor jobDescriptor; - - // The ShaderVariantTreeAsset is high priority, but must be generated after the ShaderAsset - jobDescriptor.m_priority = 1; - jobDescriptor.m_critical = false; - - jobDescriptor.m_jobKey = GetShaderVariantTreeAssetJobKey(); - jobDescriptor.SetPlatformIdentifier(info.m_identifier.data()); - - AddShaderAssetJobDependency2(jobDescriptor, info, variantListFullPath, shaderVariantList.m_shaderFilePath); - - jobDescriptor.m_jobParameters.emplace(ShaderSourceFilePathJobParam, shaderSourceFileFullPath); - - response.m_createJobOutputs.push_back(jobDescriptor); - } - - // One job for each variant. Each job will produce one ".azshadervariant" per RHI per supervariant. - for (const AZ::RPI::ShaderVariantListSourceData::VariantInfo& variantInfo : shaderVariantList.m_shaderVariants) - { - AZStd::string variantInfoAsJsonString; - const bool convertSuccess = AZ::RPI::JsonUtils::SaveObjectToJsonString(variantInfo, variantInfoAsJsonString); - AZ_Assert(convertSuccess, "Failed to convert VariantInfo to json string"); - - AssetBuilderSDK::JobDescriptor jobDescriptor; - - // There can be tens/hundreds of thousands of shader variants. By default each shader will get - // a root variant that can be used at runtime. In order to prevent the AssetProcessor from - // being overtaken by shader variant compilation We mark all non-root shader variant generation - // as non critical and very low priority. - jobDescriptor.m_priority = -5000; - jobDescriptor.m_critical = false; - - jobDescriptor.m_jobKey = GetShaderVariantAssetJobKey(RPI::ShaderVariantStableId{variantInfo.m_stableId}); - jobDescriptor.SetPlatformIdentifier(info.m_identifier.data()); - - // The ShaderVariantAssets are job dependent on the ShaderVariantTreeAsset. - AssetBuilderSDK::SourceFileDependency fileDependency; - fileDependency.m_sourceFileDependencyPath = variantListFullPath; - AssetBuilderSDK::JobDependency variantTreeJobDependency; - variantTreeJobDependency.m_jobKey = GetShaderVariantTreeAssetJobKey(); - variantTreeJobDependency.m_platformIdentifier = info.m_identifier; - variantTreeJobDependency.m_sourceFile = fileDependency; - variantTreeJobDependency.m_type = AssetBuilderSDK::JobDependencyType::Order; - jobDescriptor.m_jobDependencyList.emplace_back(variantTreeJobDependency); - - jobDescriptor.m_jobParameters.emplace(ShaderVariantJobVariantParam, variantInfoAsJsonString); - jobDescriptor.m_jobParameters.emplace(ShaderSourceFilePathJobParam, shaderSourceFileFullPath); - - response.m_createJobOutputs.push_back(jobDescriptor); - } - - } - response.m_result = AssetBuilderSDK::CreateJobsResultCode::Success; - } // CreateJobs - - void ShaderVariantAssetBuilder2::ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const - { - const auto& jobParameters = request.m_jobDescription.m_jobParameters; - - if (jobParameters.find(ShaderVariantLoadErrorParam) != jobParameters.end()) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Error during CreateJobs: %s", jobParameters.at(ShaderVariantLoadErrorParam).c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - if (jobParameters.find(ShouldExitEarlyFromProcessJobParam) != jobParameters.end()) - { - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "Doing nothing on behalf of [%s] because it's been overridden by game project.", jobParameters.at(ShaderVariantLoadErrorParam).c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - return; - } - - AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); - if (jobCancelListener.IsCancelled()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; - return; - } - - if (request.m_jobDescription.m_jobKey == GetShaderVariantTreeAssetJobKey()) - { - ProcessShaderVariantTreeJob(request, response); - } - else - { - ProcessShaderVariantJob(request, response); - } - } - - - static RPI::Ptr LoadShaderOptionsGroupLayoutFromShaderAssetBuilder2( - const RHI::ShaderPlatformInterface* shaderPlatformInterface, - const AssetBuilderSDK::PlatformInfo& platformInfo, - const AzslCompiler& azslCompiler, - const AZStd::string& shaderSourceFileFullPath, - const RPI::SupervariantIndex supervariantIndex) - { - auto optionsGroupPathOutcome = ShaderBuilderUtility::ObtainBuildArtifactPathFromShaderAssetBuilder2( - shaderPlatformInterface->GetAPIUniqueIndex(), platformInfo.m_identifier, shaderSourceFileFullPath, supervariantIndex.GetIndex(), - AZ::RPI::ShaderAssetSubId::OptionsJson); - if (!optionsGroupPathOutcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "%s", optionsGroupPathOutcome.GetError().c_str()); - return nullptr; - } - auto optionsGroupJsonPath = optionsGroupPathOutcome.TakeValue(); - RPI::Ptr shaderOptionGroupLayout = RPI::ShaderOptionGroupLayout::Create(); - // The shader options define what options are available, what are the allowed values/range - // for each option and what is its default value. - auto jsonOutcome = JsonSerializationUtils::ReadJsonFile(optionsGroupJsonPath); - if (!jsonOutcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "%s", jsonOutcome.GetError().c_str()); - return nullptr; - } - if (!azslCompiler.ParseOptionsPopulateOptionGroupLayout(jsonOutcome.GetValue(), shaderOptionGroupLayout)) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Failed to find a valid list of shader options!"); - return nullptr; - } - - return shaderOptionGroupLayout; - } - - static void LoadShaderFunctionsFromShaderAssetBuilder2( - const RHI::ShaderPlatformInterface* shaderPlatformInterface, const AssetBuilderSDK::PlatformInfo& platformInfo, - const AzslCompiler& azslCompiler, const AZStd::string& shaderSourceFileFullPath, - const RPI::SupervariantIndex supervariantIndex, - AzslFunctions& functions) - { - auto functionsJsonPathOutcome = ShaderBuilderUtility::ObtainBuildArtifactPathFromShaderAssetBuilder2( - shaderPlatformInterface->GetAPIUniqueIndex(), platformInfo.m_identifier, shaderSourceFileFullPath, supervariantIndex.GetIndex(), - AZ::RPI::ShaderAssetSubId::IaJson); - if (!functionsJsonPathOutcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "%s", functionsJsonPathOutcome.GetError().c_str()); - return; - } - - auto functionsJsonPath = functionsJsonPathOutcome.TakeValue(); - auto jsonOutcome = JsonSerializationUtils::ReadJsonFile(functionsJsonPath); - if (!jsonOutcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "%s", jsonOutcome.GetError().c_str()); - return; - } - if (!azslCompiler.ParseIaPopulateFunctionData(jsonOutcome.GetValue(), functions)) - { - functions.clear(); - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Failed to find shader functions."); - return; - } - } - - - // Returns the content of the hlsl file for the given supervariant as produced by ShaderAsssetBuilder2. - // In addition to the content it also returns the full path of the hlsl file in @hlslSourcePath. - static AZStd::string LoadHlslFileFromShaderAssetBuilder2( - const RHI::ShaderPlatformInterface* shaderPlatformInterface, const AssetBuilderSDK::PlatformInfo& platformInfo, - const AZStd::string& shaderSourceFileFullPath, const RPI::SupervariantIndex supervariantIndex, AZStd::string& hlslSourcePath) - { - auto hlslSourcePathOutcome = ShaderBuilderUtility::ObtainBuildArtifactPathFromShaderAssetBuilder2( - shaderPlatformInterface->GetAPIUniqueIndex(), platformInfo.m_identifier, shaderSourceFileFullPath, supervariantIndex.GetIndex(), - AZ::RPI::ShaderAssetSubId::GeneratedHlslSource); - if (!hlslSourcePathOutcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "%s", hlslSourcePathOutcome.GetError().c_str()); - return ""; - } - - hlslSourcePath = hlslSourcePathOutcome.TakeValue(); - Outcome hlslSourceOutcome = Utils::ReadFile(hlslSourcePath); - if (!hlslSourceOutcome.IsSuccess()) - { - AZ_Error( - ShaderVariantAssetBuilder2Name, false, "Failed to obtain shader source from %s. [%s]", hlslSourcePath.c_str(), - hlslSourceOutcome.TakeError().c_str()); - return ""; - } - return hlslSourceOutcome.TakeValue(); - } - - void ShaderVariantAssetBuilder2::ProcessShaderVariantTreeJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const - { - AZStd::string variantListFullPath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.data(), request.m_sourceFile.data(), variantListFullPath, true); - - RPI::ShaderVariantListSourceData shaderVariantListDescriptor; - if (!RPI::JsonUtils::LoadObjectFromFile(variantListFullPath, shaderVariantListDescriptor)) - { - AZ_Assert(false, "Failed to parse Shader Variant List Descriptor JSON [%s]", variantListFullPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - const AZStd::string& shaderSourceFileFullPath = request.m_jobDescription.m_jobParameters.at(ShaderSourceFilePathJobParam); - - //For debugging purposes will create a dummy azshadervarianttree file. - AZStd::string shaderName; - AzFramework::StringFunc::Path::GetFileName(shaderSourceFileFullPath.c_str(), shaderName); - - // No error checking because the same calls were already executed during CreateJobs() - auto descriptorParseOutcome = ShaderBuilderUtility::LoadShaderDataJson(shaderSourceFileFullPath); - RPI::ShaderSourceData shaderSourceDescriptor = descriptorParseOutcome.TakeValue(); - RPI::Ptr shaderOptionGroupLayout; - - // Request the list of valid shader platform interfaces for the target platform. - AZStd::vector platformInterfaces = - ShaderBuilderUtility::DiscoverEnabledShaderPlatformInterfaces(request.m_platformInfo, shaderSourceDescriptor); - if (platformInterfaces.empty()) - { - // No work to do. Exit gracefully. - AZ_TracePrintf( - ShaderVariantAssetBuilder2Name, - "No azshadervarianttree is produced on behalf of %s because all valid RHI backends were disabled for this shader.\n", - shaderSourceFileFullPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - return; - } - - - // set the input file for eventual error messages, but the compiler won't be called on it. - AZStd::string azslFullPath; - ShaderBuilderUtility::GetAbsolutePathToAzslFile(shaderSourceFileFullPath, shaderSourceDescriptor.m_source, azslFullPath); - AzslCompiler azslc(azslFullPath); - - AZStd::string previousLoopApiName; - for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) - { - auto thisLoopApiName = shaderPlatformInterface->GetAPIName().GetStringView(); - RPI::Ptr loopLocal_ShaderOptionGroupLayout = - LoadShaderOptionsGroupLayoutFromShaderAssetBuilder2( - shaderPlatformInterface, request.m_platformInfo, azslc, shaderSourceFileFullPath, RPI::DefaultSupervariantIndex); - if (!loopLocal_ShaderOptionGroupLayout) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - if (shaderOptionGroupLayout && shaderOptionGroupLayout->GetHash() != loopLocal_ShaderOptionGroupLayout->GetHash()) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "There was a discrepancy in shader options between %s and %s", previousLoopApiName.c_str(), thisLoopApiName.data()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - shaderOptionGroupLayout = loopLocal_ShaderOptionGroupLayout; - previousLoopApiName = thisLoopApiName; - } - - RPI::ShaderVariantTreeAssetCreator shaderVariantTreeAssetCreator; - shaderVariantTreeAssetCreator.Begin(Uuid::CreateRandom()); - shaderVariantTreeAssetCreator.SetShaderOptionGroupLayout(*shaderOptionGroupLayout); - shaderVariantTreeAssetCreator.SetVariantInfos(shaderVariantListDescriptor.m_shaderVariants); - Data::Asset shaderVariantTreeAsset; - if (!shaderVariantTreeAssetCreator.End(shaderVariantTreeAsset)) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Failed to build Shader Variant Tree Asset"); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - AZStd::string filename = AZStd::string::format("%s.%s", shaderName.c_str(), RPI::ShaderVariantTreeAsset::Extension); - AZStd::string assetPath; - AzFramework::StringFunc::Path::ConstructFull(request.m_tempDirPath.c_str(), filename.c_str(), assetPath, true); - if (!AZ::Utils::SaveObjectToFile(assetPath, AZ::DataStream::ST_BINARY, shaderVariantTreeAsset.Get())) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Failed to save Shader Variant Tree Asset to \"%s\"", assetPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - AssetBuilderSDK::JobProduct assetProduct; - assetProduct.m_productSubID = RPI::ShaderVariantTreeAsset::ProductSubID; - assetProduct.m_productFileName = assetPath; - assetProduct.m_productAssetType = azrtti_typeid(); - assetProduct.m_dependenciesHandled = true; // This builder has no dependencies to output - response.m_outputProducts.push_back(assetProduct); - - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "Shader Variant Tree Asset [%s] compiled successfully.\n", assetPath.c_str()); - - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - } - - void ShaderVariantAssetBuilder2::ProcessShaderVariantJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const - { - const AZStd::sys_time_t startTime = AZStd::GetTimeNowTicks(); - AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); - - AZStd::string fullPath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.data(), request.m_sourceFile.data(), fullPath, true); - - const auto& jobParameters = request.m_jobDescription.m_jobParameters; - const AZStd::string& shaderSourceFileFullPath = jobParameters.at(ShaderSourceFilePathJobParam); - AZStd::string shaderFileName; - AzFramework::StringFunc::Path::GetFileName(shaderSourceFileFullPath.c_str(), shaderFileName); - - const AZStd::string& variantJsonString = jobParameters.at(ShaderVariantJobVariantParam); - RPI::ShaderVariantListSourceData::VariantInfo variantInfo; - const bool fromJsonStringSuccess = AZ::RPI::JsonUtils::LoadObjectFromJsonString(variantJsonString, variantInfo); - AZ_Assert(fromJsonStringSuccess, "Failed to convert json string to VariantInfo"); - - RPI::ShaderSourceData shaderSourceDescriptor; - AZStd::shared_ptr sources = ShaderBuilderUtility::PrepareSourceInput(ShaderVariantAssetBuilder2Name, shaderSourceFileFullPath, shaderSourceDescriptor); - - // set the input file for eventual error messages, but the compiler won't be called on it. - AzslCompiler azslc(sources->m_azslSourceFullPath); - - // Request the list of valid shader platform interfaces for the target platform. - AZStd::vector platformInterfaces = - ShaderBuilderUtility::DiscoverEnabledShaderPlatformInterfaces(request.m_platformInfo, shaderSourceDescriptor); - if (platformInterfaces.empty()) - { - // No work to do. Exit gracefully. - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, - "No azshader is produced on behalf of %s because all valid RHI backends were disabled for this shader.\n", - shaderSourceFileFullPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - return; - } - - auto supervariantList = ShaderBuilderUtility::GetSupervariantListFromShaderSourceData(shaderSourceDescriptor); - - GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderVariantAssetBuilder2Name); - // At this moment We have global build options that should be merged with the build options that are common - // to all the supervariants of this shader. - buildOptions.m_compilerArguments.Merge(shaderSourceDescriptor.m_compiler); - - //! The ShaderOptionGroupLayout is common across all RHIs & Supervariants - RPI::Ptr shaderOptionGroupLayout = nullptr; - - // Generate shaders for each of those ShaderPlatformInterfaces. - for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) - { - AZ_TraceContext("ShaderPlatformInterface", shaderPlatformInterface->GetAPIName().GetCStr()); - - // Loop through all the Supervariants. - uint32_t supervariantIndexCounter = 0; - for (const auto& supervariantInfo : supervariantList) - { - RPI::SupervariantIndex supervariantIndex(supervariantIndexCounter); - - // Check if we were canceled before we do any heavy processing of - // the shader variant data. - if (jobCancelListener.IsCancelled()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; - return; - } - - AZStd::string shaderStemNamePrefix = shaderFileName; - if (supervariantIndex.GetIndex() > 0) - { - shaderStemNamePrefix += supervariantInfo.m_name.GetStringView(); - } - - // We need these additional pieces of information To build a shader variant asset: - // 1- ShaderOptionsGroupLayout (Need to load it once, because it's the same acrosss all supervariants + RHIs) - // 2- entryFunctions - // 3- hlsl code. - - // 1- ShaderOptionsGroupLayout - if (!shaderOptionGroupLayout) - { - shaderOptionGroupLayout = - LoadShaderOptionsGroupLayoutFromShaderAssetBuilder2( - shaderPlatformInterface, request.m_platformInfo, azslc, shaderSourceFileFullPath, supervariantIndex); - if (!shaderOptionGroupLayout) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - } - - // 2- entryFunctions. - AzslFunctions azslFunctions; - LoadShaderFunctionsFromShaderAssetBuilder2( - shaderPlatformInterface, request.m_platformInfo, azslc, shaderSourceFileFullPath, supervariantIndex, azslFunctions); - if (azslFunctions.empty()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - MapOfStringToStageType shaderEntryPoints; - if (shaderSourceDescriptor.m_programSettings.m_entryPoints.empty()) - { - AZ_TracePrintf( - ShaderVariantAssetBuilder2Name, - "ProgramSettings do not specify entry points, will use GetDefaultEntryPointsFromShader()\n"); - ShaderBuilderUtility::GetDefaultEntryPointsFromFunctionDataList(azslFunctions, shaderEntryPoints); - } - else - { - for (const auto& entryPoint : shaderSourceDescriptor.m_programSettings.m_entryPoints) - { - shaderEntryPoints[entryPoint.m_name] = entryPoint.m_type; - } - } - - // 3- hlslCode - AZStd::string hlslSourcePath; - AZStd::string hlslCode = LoadHlslFileFromShaderAssetBuilder2( - shaderPlatformInterface, request.m_platformInfo, shaderSourceFileFullPath, supervariantIndex, hlslSourcePath); - if (hlslCode.empty() || hlslSourcePath.empty()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - // Setup the shader variant creation context: - ShaderVariantCreationContext2 shaderVariantCreationContext = - { - *shaderPlatformInterface, request.m_platformInfo, buildOptions.m_compilerArguments, request.m_tempDirPath, - startTime, - shaderSourceDescriptor, - *shaderOptionGroupLayout.get(), - shaderEntryPoints, - Uuid::CreateRandom(), - shaderStemNamePrefix, - hlslSourcePath, hlslCode - }; - - AZStd::optional outputByproducts; - auto shaderVariantAssetOutcome = CreateShaderVariantAsset(variantInfo, shaderVariantCreationContext, outputByproducts); - if (!shaderVariantAssetOutcome.IsSuccess()) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "%s\n", shaderVariantAssetOutcome.GetError().c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - Data::Asset shaderVariantAsset = shaderVariantAssetOutcome.TakeValue(); - - - // Time to save the asset in the tmp folder so it ends up in the Cache folder. - const uint32_t productSubID = RPI::ShaderVariantAsset2::MakeAssetProductSubId( - shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex.GetIndex(), - shaderVariantAsset->GetStableId()); - AssetBuilderSDK::JobProduct assetProduct; - if (!SerializeOutShaderVariantAsset(shaderVariantAsset, shaderStemNamePrefix, - request.m_tempDirPath, *shaderPlatformInterface, productSubID, - assetProduct)) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - response.m_outputProducts.push_back(assetProduct); - - if (outputByproducts) - { - // add byproducts as job output products: - uint32_t subProductType = RPI::ShaderVariantAsset2::ShaderVariantAsset2SubProductType; - for (const AZStd::string& byproduct : outputByproducts.value().m_intermediatePaths) - { - AssetBuilderSDK::JobProduct jobProduct; - jobProduct.m_productFileName = byproduct; - jobProduct.m_productAssetType = Uuid::CreateName("DebugInfoByProduct-PdbOrDxilTxt"); - jobProduct.m_productSubID = RPI::ShaderVariantAsset2::MakeAssetProductSubId( - shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex.GetIndex(), shaderVariantAsset->GetStableId(), - subProductType++); - response.m_outputProducts.push_back(AZStd::move(jobProduct)); - } - } - supervariantIndexCounter++; - } // End of supervariant for block - - } - - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - } - - bool ShaderVariantAssetBuilder2::SerializeOutShaderVariantAsset( - const Data::Asset shaderVariantAsset, const AZStd::string& shaderStemNamePrefix, - const AZStd::string& tempDirPath, - const RHI::ShaderPlatformInterface& shaderPlatformInterface, const uint32_t productSubID, AssetBuilderSDK::JobProduct& assetProduct) - { - AZStd::string filename = AZStd::string::format( - "%s_%s_%u.%s", shaderStemNamePrefix.c_str(), shaderPlatformInterface.GetAPIName().GetCStr(), - shaderVariantAsset->GetStableId().GetIndex(), RPI::ShaderVariantAsset2::Extension); - - AZStd::string assetPath; - AzFramework::StringFunc::Path::ConstructFull(tempDirPath.c_str(), filename.c_str(), assetPath, true); - - if (!AZ::Utils::SaveObjectToFile(assetPath, AZ::DataStream::ST_BINARY, shaderVariantAsset.Get())) - { - AZ_Error(ShaderVariantAssetBuilder2Name, false, "Failed to save Shader Variant Asset to \"%s\"", assetPath.c_str()); - return false; - } - - assetProduct.m_productSubID = productSubID; - assetProduct.m_productFileName = assetPath; - assetProduct.m_productAssetType = azrtti_typeid(); - assetProduct.m_dependenciesHandled = true; // This builder has no dependencies to output - - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "Shader Variant Asset [%s] compiled successfully.\n", assetPath.c_str()); - return true; - } - - - AZ::Outcome, AZStd::string> ShaderVariantAssetBuilder2::CreateShaderVariantAsset( - const RPI::ShaderVariantListSourceData::VariantInfo& shaderVariantInfo, - ShaderVariantCreationContext2& creationContext, - AZStd::optional& outputByproducts) - { - // Temporary structure used for sorting and caching intermediate results - struct OptionCache - { - AZ::Name m_optionName; - AZ::Name m_valueName; - RPI::ShaderOptionIndex m_optionIndex; // Cached m_optionName - RPI::ShaderOptionValue m_value; // Cached m_valueName - }; - AZStd::vector optionList; - // We can not have more options than the number of options in the layout: - optionList.reserve(creationContext.m_shaderOptionGroupLayout.GetShaderOptionCount()); - - // This loop will validate and cache the indices for each option value: - for (const auto& shaderOption : shaderVariantInfo.m_options) - { - Name optionName{shaderOption.first}; - Name optionValue{shaderOption.second}; - - RPI::ShaderOptionIndex optionIndex = creationContext.m_shaderOptionGroupLayout.FindShaderOptionIndex(optionName); - if (optionIndex.IsNull()) - { - return AZ::Failure(AZStd::string::format("Invalid shader option: %s", optionName.GetCStr())); - } - - const RPI::ShaderOptionDescriptor& option = creationContext.m_shaderOptionGroupLayout.GetShaderOption(optionIndex); - RPI::ShaderOptionValue value = option.FindValue(optionValue); - if (value.IsNull()) - { - return AZ::Failure( - AZStd::string::format("Invalid value (%s) for shader option: %s", optionValue.GetCStr(), optionName.GetCStr())); - } - - optionList.push_back(OptionCache{optionName, optionValue, optionIndex, value}); - } - - // Create one instance of the shader variant - RPI::ShaderOptionGroup optionGroup(&creationContext.m_shaderOptionGroupLayout); - - //! Contains the series of #define macro values that define a variant. Can be empty (root variant). - //! If this string is NOT empty, a new temporary hlsl file will be created that will be the combination - //! of this string + @m_hlslSourceContent. - AZStd::string hlslCodeToPrependForVariant; - - // We want to go over all options listed in the variant and set their respective values - // This loop will populate the optionGroup and m_shaderCodePrefix in order of the option priority - for (const auto& optionCache : optionList) - { - const RPI::ShaderOptionDescriptor& option = creationContext.m_shaderOptionGroupLayout.GetShaderOption(optionCache.m_optionIndex); - - // Assign the option value specified in the variant: - option.Set(optionGroup, optionCache.m_value); - - // Populate all shader option defines. We have already confirmed they're valid. - hlslCodeToPrependForVariant += AZStd::string::format( - "#define %s_OPTION_DEF %s\n", optionCache.m_optionName.GetCStr(), optionCache.m_valueName.GetCStr()); - } - - AZStd::string variantShaderSourcePath; - // Check if we need to prepend any code prefix - if (!hlslCodeToPrependForVariant.empty()) - { - // Prepend any shader code prefix that we should apply to this variant - // and save it back to a file. - AZStd::string variantShaderSourceString(hlslCodeToPrependForVariant); - variantShaderSourceString += creationContext.m_hlslSourceContent; - - AZStd::string shaderAssetName = AZStd::string::format( - "%s_%s_%u.hlsl", creationContext.m_shaderStemNamePrefix.c_str(), - creationContext.m_shaderPlatformInterface.GetAPIName().GetCStr(), shaderVariantInfo.m_stableId); - AzFramework::StringFunc::Path::Join( - creationContext.m_tempDirPath.c_str(), shaderAssetName.c_str(), variantShaderSourcePath, true, true); - - auto outcome = Utils::WriteFile(variantShaderSourceString, variantShaderSourcePath); - if (!outcome.IsSuccess()) - { - return AZ::Failure(AZStd::string::format("Failed to create file %s", variantShaderSourcePath.c_str())); - } - } - else - { - variantShaderSourcePath = creationContext.m_hlslSourcePath; - } - - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "Variant StableId: %u", shaderVariantInfo.m_stableId); - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "Variant Shader Options: %s", optionGroup.ToString().c_str()); - - const RPI::ShaderVariantStableId shaderVariantStableId{shaderVariantInfo.m_stableId}; - - // By this time the optionGroup was populated with all option values for the variant and - // the m_shaderCodePrefix contains all option related preprocessing macros - // Let's add the requested variant: - RPI::ShaderVariantAssetCreator2 variantCreator; - RPI::ShaderOptionGroup shaderOptions{&creationContext.m_shaderOptionGroupLayout, optionGroup.GetShaderVariantId()}; - variantCreator.Begin( - creationContext.m_shaderVariantAssetId, optionGroup.GetShaderVariantId(), shaderVariantStableId, - shaderOptions.IsFullySpecified()); - - const AZStd::unordered_map& shaderEntryPoints = creationContext.m_shaderEntryPoints; - for (const auto& shaderEntryPoint : shaderEntryPoints) - { - auto shaderEntryName = shaderEntryPoint.first; - auto shaderStageType = shaderEntryPoint.second; - - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "Entry Point: %s", shaderEntryName.c_str()); - AZ_TracePrintf(ShaderVariantAssetBuilder2Name, "Begin compiling shader function \"%s\"", shaderEntryName.c_str()); - - auto assetBuilderShaderType = ShaderBuilderUtility::ToAssetBuilderShaderType(shaderStageType); - - // Compile HLSL to the platform specific shader. - RHI::ShaderPlatformInterface::StageDescriptor descriptor; - bool shaderWasCompiled = creationContext.m_shaderPlatformInterface.CompilePlatformInternal( - creationContext.m_platformInfo, variantShaderSourcePath, shaderEntryName, assetBuilderShaderType, - creationContext.m_tempDirPath, descriptor, creationContext.m_shaderCompilerArguments); - - if (!shaderWasCompiled) - { - return AZ::Failure(AZStd::string::format("Could not compile the shader function %s", shaderEntryName.c_str())); - } - // bubble up the byproducts to the caller by moving them to the context. - outputByproducts.emplace(AZStd::move(descriptor.m_byProducts)); - - RHI::Ptr shaderStageFunction = creationContext.m_shaderPlatformInterface.CreateShaderStageFunction(descriptor); - variantCreator.SetShaderFunction(ToRHIShaderStage(assetBuilderShaderType), shaderStageFunction); - - if (descriptor.m_byProducts.m_dynamicBranchCount != AZ::RHI::ShaderPlatformInterface::ByProducts::UnknownDynamicBranchCount) - { - AZ_TracePrintf( - ShaderVariantAssetBuilder2Name, "Finished compiling shader function. Number of dynamic branches: %u", - descriptor.m_byProducts.m_dynamicBranchCount); - } - else - { - AZ_TracePrintf( - ShaderVariantAssetBuilder2Name, "Finished compiling shader function. Number of dynamic branches: unknown"); - } - } - - Data::Asset shaderVariantAsset; - variantCreator.End(shaderVariantAsset); - return AZ::Success(AZStd::move(shaderVariantAsset)); - } - - } // ShaderBuilder -} // AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.h deleted file mode 100644 index c0b632d9bd..0000000000 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.h +++ /dev/null @@ -1,107 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#pragma once - -#include -#include -#include - -#include -#include -#include -#include - -#include "ShaderBuilderUtility.h" - -namespace AZ -{ - namespace ShaderBuilder - { - struct AzslData; - - //! This is nothing more than a class to help consolidate all - //! the data needed to generate a shader variant and prevent - //! all the functions involved in the process to have too many - //! arguments. - struct ShaderVariantCreationContext2 - { - RHI::ShaderPlatformInterface& m_shaderPlatformInterface; - const AssetBuilderSDK::PlatformInfo& m_platformInfo; - const RHI::ShaderCompilerArguments& m_shaderCompilerArguments; - //! Used to write temporary files during shader compilation, like *.hlsl, or *.air, or *.metallib, etc. - const AZStd::string& m_tempDirPath; - //! Used to synchronize versions of the ShaderAsset and ShaderVariantAsset, - //! especially during hot-reload. A (ShaderVariantAsset.timestamp) >= (ShaderAsset.timestamp). - const AZStd::sys_time_t m_assetBuildTimestamp; - const RPI::ShaderSourceData& m_shaderSourceDataDescriptor; - const RPI::ShaderOptionGroupLayout& m_shaderOptionGroupLayout; - const MapOfStringToStageType& m_shaderEntryPoints; - const Data::AssetId m_shaderVariantAssetId; - const AZStd::string& m_shaderStemNamePrefix; //- - const AZStd::string& m_hlslSourcePath; - const AZStd::string& m_hlslSourceContent; - }; - - class ShaderVariantAssetBuilder2 - : public AssetBuilderSDK::AssetBuilderCommandBus::Handler - { - public: - AZ_TYPE_INFO(ShaderVariantAssetBuilder2, "{C959AEC2-2083-4488-AD88-F61B1144535B}"); - - static constexpr char ShaderVariantAssetBuilder2JobKey[] = "Shader Variant Asset 2"; - - ShaderVariantAssetBuilder2() = default; - ~ShaderVariantAssetBuilder2() = default; - - // Asset Builder Callback Functions ... - void CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const; - void ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const; - - //! The ShaderVariantAsset returned by this function won't be written to the filesystem. - //! You should call SerializeOutShaderVariantAsset to write it to the temp folder assigned - //! by the asset processor. - static AZ::Outcome, AZStd::string> CreateShaderVariantAsset( - const RPI::ShaderVariantListSourceData::VariantInfo& shaderVariantInfo, - ShaderVariantCreationContext2& creationContext, - AZStd::optional& outputByproducts); - - static bool SerializeOutShaderVariantAsset( - const Data::Asset shaderVariantAsset, - const AZStd::string& shaderStemNamePrefix, const AZStd::string& tempDirPath, - const RHI::ShaderPlatformInterface& shaderPlatformInterface, const uint32_t productSubID, AssetBuilderSDK::JobProduct& assetProduct); - - // AssetBuilderSDK::AssetBuilderCommandBus interface overrides ... - void ShutDown() override { }; - - private: - AZ_DISABLE_COPY_MOVE(ShaderVariantAssetBuilder2); - - static constexpr uint32_t ShaderVariantLoadErrorParam = 0; - static constexpr uint32_t ShaderSourceFilePathJobParam = 2; - static constexpr uint32_t ShaderVariantJobVariantParam = 3; - static constexpr uint32_t ShouldExitEarlyFromProcessJobParam = 4; - - //! Called from ProcessJob when the job is supposed to create a ShaderVariantTreeAsset. - void ProcessShaderVariantTreeJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const; - - //! Called from ProcessJob when the job is supposed to create ShaderVariantAssets. One ShaderVariantAsset will be produced per RHI::APIType - //! supported by the platform. - void ProcessShaderVariantJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const; - - static AZStd::string GetShaderVariantTreeAssetJobKey() { return AZStd::string::format("%s_varianttree", ShaderVariantAssetBuilder2JobKey); } - static AZStd::string GetShaderVariantAssetJobKey(RPI::ShaderVariantStableId variantStableId) { return AZStd::string::format("%s_variant_%u", ShaderVariantAssetBuilder2JobKey, variantStableId.GetIndex()); } - - }; - - } // ShaderBuilder -} // AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutBuilder.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutBuilder.cpp deleted file mode 100644 index a7721c84a2..0000000000 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutBuilder.cpp +++ /dev/null @@ -1,541 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#include - -#include -#include -#include - -#include -#include - -#include - -#include -#include - -#include -#include -#include - -#include - -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace AZ -{ - namespace ShaderBuilder - { - AZ::Uuid SrgLayoutBuilder::GetUUID() - { - return AZ::Uuid::CreateString("{ABC78905-B3FC-497A-916A-217D1460E52F}"); - } - - void SrgLayoutBuilder::Reflect([[maybe_unused]] AZ::ReflectContext* context) - { - } - - SrgLayoutBuilder::SrgLayoutBuilder() - { - } - - SrgLayoutBuilder::~SrgLayoutBuilder() - { - } - - void SrgLayoutBuilder::Activate() - { - } - - void SrgLayoutBuilder::Deactivate() - { - } - - void SrgLayoutBuilder::ShutDown() - { - } - - RHI::ShaderInputBufferType ToShaderInputBufferType(BufferType bufferType) - { - switch (bufferType) - { - case BufferType::Buffer: - case BufferType::RwBuffer: - case BufferType::RasterizerOrderedBuffer: - return RHI::ShaderInputBufferType::Typed; - case BufferType::AppendStructuredBuffer: - case BufferType::ConsumeStructuredBuffer: - case BufferType::RasterizerOrderedStructuredBuffer: - case BufferType::RwStructuredBuffer: - case BufferType::StructuredBuffer: - return RHI::ShaderInputBufferType::Structured; - case BufferType::RasterizerOrderedByteAddressBuffer: - case BufferType::ByteAddressBuffer: - case BufferType::RwByteAddressBuffer: - return RHI::ShaderInputBufferType::Raw; - case BufferType::RaytracingAccelerationStructure: - return RHI::ShaderInputBufferType::AccelerationStructure; - default: - AZ_Assert(false, "Unhandled BufferType"); - return RHI::ShaderInputBufferType::Unknown; - } - } - - RHI::ShaderInputBufferAccess ToShaderInputBufferAccess(BufferType bufferType) - { - switch (bufferType) - { - case BufferType::Buffer: - case BufferType::ByteAddressBuffer: - case BufferType::ConsumeStructuredBuffer: - case BufferType::StructuredBuffer: - return RHI::ShaderInputBufferAccess::Read; - case BufferType::AppendStructuredBuffer: - case BufferType::RasterizerOrderedStructuredBuffer: - case BufferType::RasterizerOrderedByteAddressBuffer: - case BufferType::RasterizerOrderedBuffer: - case BufferType::RwByteAddressBuffer: - case BufferType::RwStructuredBuffer: - case BufferType::RwBuffer: - return RHI::ShaderInputBufferAccess::ReadWrite; - default: - AZ_Assert(false, "Unhandled BufferType"); - return RHI::ShaderInputBufferAccess::Read; - } - } - - RHI::ShaderInputImageType ToShaderInputImageType(TextureType textureType) - { - switch (textureType) - { - case TextureType::Texture1D: return RHI::ShaderInputImageType::Image1D; - case TextureType::Texture1DArray: return RHI::ShaderInputImageType::Image1DArray; - case TextureType::Texture2D: return RHI::ShaderInputImageType::Image2D; - case TextureType::Texture2DArray: return RHI::ShaderInputImageType::Image2DArray; - case TextureType::Texture2DMS: return RHI::ShaderInputImageType::Image2DMultisample; - case TextureType::Texture2DMSArray: return RHI::ShaderInputImageType::Image2DMultisampleArray; - case TextureType::Texture3D: return RHI::ShaderInputImageType::Image3D; - case TextureType::TextureCube: return RHI::ShaderInputImageType::ImageCube; - case TextureType::RwTexture1D: return RHI::ShaderInputImageType::Image1D; - case TextureType::RwTexture1DArray: return RHI::ShaderInputImageType::Image1DArray; - case TextureType::RwTexture2D: return RHI::ShaderInputImageType::Image2D; - case TextureType::RwTexture2DArray: return RHI::ShaderInputImageType::Image2DArray; - case TextureType::RwTexture3D: return RHI::ShaderInputImageType::Image3D; - case TextureType::RasterizerOrderedTexture1D: return RHI::ShaderInputImageType::Image1D; - case TextureType::RasterizerOrderedTexture1DArray: return RHI::ShaderInputImageType::Image1DArray; - case TextureType::RasterizerOrderedTexture2D: return RHI::ShaderInputImageType::Image2D; - case TextureType::RasterizerOrderedTexture2DArray: return RHI::ShaderInputImageType::Image2DArray; - case TextureType::RasterizerOrderedTexture3D: return RHI::ShaderInputImageType::Image3D; - case TextureType::SubpassInput: return RHI::ShaderInputImageType::SubpassInput; - default: - AZ_Assert(false, "Unhandled TextureType"); - return RHI::ShaderInputImageType::Unknown; - } - } - - RHI::ShaderInputImageAccess ToShaderInputImageAccess(TextureType textureType) - { - switch (textureType) - { - case TextureType::Texture1D: - case TextureType::Texture1DArray: - case TextureType::Texture2D: - case TextureType::Texture2DArray: - case TextureType::Texture2DMS: - case TextureType::Texture2DMSArray: - case TextureType::Texture3D: - case TextureType::TextureCube: - return RHI::ShaderInputImageAccess::Read; - case TextureType::RwTexture1D: - case TextureType::RwTexture1DArray: - case TextureType::RwTexture2D: - case TextureType::RwTexture2DArray: - case TextureType::RwTexture3D: - case TextureType::RasterizerOrderedTexture1D: - case TextureType::RasterizerOrderedTexture1DArray: - case TextureType::RasterizerOrderedTexture2D: - case TextureType::RasterizerOrderedTexture2DArray: - case TextureType::RasterizerOrderedTexture3D: - return RHI::ShaderInputImageAccess::ReadWrite; - default: - AZ_Assert(false, "Unhandled TextureType"); - return RHI::ShaderInputImageAccess::Read; - } - } - - void SrgLayoutBuilder::CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const - { - AZStd::string fullPath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.data(), request.m_sourceFile.data(), fullPath, false); - AzFramework::StringFunc::Path::Normalize(fullPath); - - AZ_TracePrintf(SrgLayoutBuilderName, "CreateJobs for Srg Layouts \"%s\"\n", fullPath.data()); - - for (const AssetBuilderSDK::PlatformInfo& info : request.m_enabledPlatforms) - { - AssetBuilderSDK::JobDescriptor jobDescriptor; - jobDescriptor.m_priority = 2; - // [GFX TODO][ATOM-2830] Set 'm_critical' back to 'false' once proper fix for Atom startup issues are in - jobDescriptor.m_critical = true; - jobDescriptor.m_jobKey = SrgLayoutBuilderJobKey; - jobDescriptor.SetPlatformIdentifier(info.m_identifier.data()); - - // Get the platform interfaces to be able to access the prepend file - AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverValidShaderPlatformInterfaces(info); - // queue up AzslBuilder dependencies: - for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) - { - AddAzslBuilderJobDependency(jobDescriptor, info.m_identifier, shaderPlatformInterface->GetAPIName().GetCStr(), fullPath); - } - response.m_createJobOutputs.push_back(jobDescriptor); - } - - response.m_result = AssetBuilderSDK::CreateJobsResultCode::Success; - } - - void SrgLayoutBuilder::ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const - { - AZStd::string sourcePath; - AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.c_str(), request.m_sourceFile.c_str(), sourcePath, false); - AzFramework::StringFunc::Path::Normalize(sourcePath); - - if (!AzFramework::StringFunc::Path::IsExtension(sourcePath.c_str(), MergedPartialSrgsExtension)) // not .srgi - { - auto skipCheck = ShaderBuilderUtility::ShouldSkipFileForSrgProcessing(SrgLayoutBuilderName, sourcePath); - if (skipCheck != ShaderBuilderUtility::SrgSkipFileResult::ContinueProcess) - { - response.m_resultCode = skipCheck == ShaderBuilderUtility::SrgSkipFileResult::Error ? - AssetBuilderSDK::ProcessJobResult_Failed : AssetBuilderSDK::ProcessJobResult_Success; - return; - } - } - - AZ_TracePrintf(SrgLayoutBuilderName, "Processing Shader Resource Group \"%s\".\n", sourcePath.c_str()); - - AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); - if (jobCancelListener.IsCancelled()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; - return; - } - - // Note this will update response.m_resultCode - CreateSRGAsset(sourcePath, request, response, jobCancelListener); - - AZ_TracePrintf(SrgLayoutBuilderName, "Finished processing %s\n", sourcePath.c_str()); - } - - void SrgLayoutBuilder::CreateSRGAsset( - AZStd::string fullSourcePath, - const AssetBuilderSDK::ProcessJobRequest& request, - AssetBuilderSDK::ProcessJobResponse& response, - AssetBuilderSDK::JobCancelListener& jobCancelListener) - { - // Request the list of valid shader platform interfaces for the target platform. - AZStd::vector platformInterfaces; - ShaderPlatformInterfaceRequestBus::BroadcastResult(platformInterfaces, &ShaderPlatformInterfaceRequest::GetShaderPlatformInterface, request.m_platformInfo); - if (platformInterfaces.empty()) - { - AZ_Error(SrgLayoutBuilderName, false, "No ShaderPlatformInterfaces found."); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - using SrgDataEntry = AZStd::pair; - // List with all SRGs that need to be processed. - AZStd::unordered_map> srgsToProcess; - // Emit all SRGs per each of the platform interfaces. - for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces) - { - if (!shaderPlatformInterface) - { - AZ_Error(SrgLayoutBuilderName, false, "ShaderPlatformInterface for [%s] is not registered, can't compile [%s]", request.m_platformInfo.m_identifier.c_str(), request.m_sourceFile.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - SrgDataContainer srgDataContainer; - - auto azslArtifactsOutcome = ShaderBuilderUtility::ObtainBuildArtifactsFromAzslBuilder(SrgLayoutBuilderName, fullSourcePath, shaderPlatformInterface->GetAPIType(), request.m_platformInfo.m_identifier); - if (!azslArtifactsOutcome.IsSuccess()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - // create an AzslCompiler instance to use it's json parsing facilities, but we won't call any emit facility. So the compiler actually never runs. - AzslCompiler azslc(azslArtifactsOutcome.GetValue()[ShaderBuilderUtility::AzslSubProducts::azslin]); // set the input file for eventual error messages. - - AZ::Outcome outcome; - outcome = JsonSerializationUtils::ReadJsonFile(azslArtifactsOutcome.GetValue()[ShaderBuilderUtility::AzslSubProducts::srg]); - if (!outcome.IsSuccess()) - { - AZ_Error(SrgLayoutBuilderName, false, "%s", outcome.GetError().c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - if (!azslc.ParseSrgPopulateSrgData(outcome.GetValue(), srgDataContainer)) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - for (const SrgData& srgData : srgDataContainer) - { - // Ignore the SRGs included from other files. - AZStd::string normalizedContainer = srgData.m_containingFileName; - AzFramework::StringFunc::Path::Normalize(normalizedContainer); - if (normalizedContainer != fullSourcePath) - { - AZ_TracePrintf(SrgLayoutBuilderName, "SRG [%s] found in [%s] but is foreign to [%s]. skipped.", - srgData.m_name.c_str(), normalizedContainer.c_str(), fullSourcePath.c_str()); - continue; - } - AZ_TracePrintf(SrgLayoutBuilderName, "SRG [%s] found in [%s] (native to this file). added.", - srgData.m_name.c_str(), normalizedContainer.c_str()); - srgsToProcess[srgData.m_name].push_back(SrgDataEntry(shaderPlatformInterface, AZStd::move(srgData))); - } - } - - AZStd::string fileNameOnly; - AzFramework::StringFunc::Path::GetFileName(request.m_sourceFile.c_str(), fileNameOnly); - - if (srgsToProcess.empty()) - { - AZ_TracePrintf(SrgLayoutBuilderName, "No ShaderResourceGroups found in '%s'.", fullSourcePath.c_str()); - } - - // Process all SRGs that were emitted. - for (const auto& entry : srgsToProcess) - { - const auto& srgName = entry.first; - if (jobCancelListener.IsCancelled()) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled; - return; - } - - AZStd::string fullFileName = fileNameOnly + "_" + srgName; - AZStd::string shaderResourceGroupAssetPath; - AzFramework::StringFunc::Path::ConstructFull(request.m_tempDirPath.c_str(), fullFileName.c_str(), shaderResourceGroupAssetPath, true); - AzFramework::StringFunc::Path::ReplaceExtension(shaderResourceGroupAssetPath, "azsrg"); - - RPI::ShaderResourceGroupAssetCreator srgAssetCreator; - srgAssetCreator.Begin(Uuid::CreateRandom(), Name{ srgName }); - - bool success = true; - // Process the SRG per each shader platform interface. - for(const SrgDataEntry& srgDataEntry : entry.second) - { - RHI::ShaderPlatformInterface* shaderPlatformInterface = srgDataEntry.first; - - // The register number only makes sense if the platform uses "spaces", - // since the register Id of the resource will not change even if the pipeline layout changes. - // We can pass in a default ShaderCompilerArguments because all we care about is whether the shaderPlatformInterface - // appends the - // "--use-spaces" flag. - AZStd::string azslCompilerParameters = - shaderPlatformInterface->GetAzslCompilerParameters(RHI::ShaderCompilerArguments{}); - bool useRegisterId = (AzFramework::StringFunc::Find(azslCompilerParameters, "--use-spaces") != AZStd::string::npos); - - const SrgData& srgData = srgDataEntry.second; - - srgAssetCreator.BeginAPI(shaderPlatformInterface->GetAPIType()); - srgAssetCreator.SetBindingSlot(srgData.m_bindingSlot.m_index); - - // Samplers - for (const SamplerSrgData& samplerData : srgData.m_samplers) - { - if (samplerData.m_isDynamic) - { - srgAssetCreator.AddShaderInput({ - samplerData.m_nameId, - samplerData.m_count, - useRegisterId ? samplerData.m_registerId : RHI::UndefinedRegisterSlot }); - } - else - { - srgAssetCreator.AddStaticSampler({ - samplerData.m_nameId, - samplerData.m_descriptor, - useRegisterId ? samplerData.m_registerId : RHI::UndefinedRegisterSlot }); - } - } - - // Images - for (const TextureSrgData& textureData : srgData.m_textures) - { - const RHI::ShaderInputImageAccess imageAccess = - textureData.m_isReadOnlyType ? - RHI::ShaderInputImageAccess::Read : - RHI::ShaderInputImageAccess::ReadWrite; - - const RHI::ShaderInputImageType imageType = ToShaderInputImageType(textureData.m_type); - - if (imageType != RHI::ShaderInputImageType::Unknown) - { - if (textureData.m_count != aznumeric_cast(-1)) - { - srgAssetCreator.AddShaderInput({ - textureData.m_nameId, - imageAccess, - imageType, - textureData.m_count, - useRegisterId ? textureData.m_registerId : RHI::UndefinedRegisterSlot }); - } - else - { - // unbounded array - srgAssetCreator.AddShaderInput({ - textureData.m_nameId, - imageAccess, - imageType, - useRegisterId ? textureData.m_registerId : RHI::UndefinedRegisterSlot }); - } - } - else - { - AZ_Error(SrgLayoutBuilderName, false, "Failed to build Shader Resource Group Asset: Image %s has an unknown type.", textureData.m_nameId.GetCStr()); - success = false; - } - } - - // Buffers - { - for (const ConstantBufferData& cbData : srgData.m_constantBuffers) - { - srgAssetCreator.AddShaderInput({ - cbData.m_nameId, - RHI::ShaderInputBufferAccess::Constant, - RHI::ShaderInputBufferType::Constant, - cbData.m_count, - cbData.m_strideSize, - useRegisterId ? cbData.m_registerId : RHI::UndefinedRegisterSlot }); - } - - for (const BufferSrgData& bufferData : srgData.m_buffers) - { - const RHI::ShaderInputBufferAccess bufferAccess = - bufferData.m_isReadOnlyType ? - RHI::ShaderInputBufferAccess::Read : - RHI::ShaderInputBufferAccess::ReadWrite; - - const RHI::ShaderInputBufferType bufferType = ToShaderInputBufferType(bufferData.m_type); - - if (bufferType != RHI::ShaderInputBufferType::Unknown) - { - if (bufferData.m_count != aznumeric_cast(-1)) - { - srgAssetCreator.AddShaderInput({ - bufferData.m_nameId, - bufferAccess, - bufferType, - bufferData.m_count, - bufferData.m_strideSize, - useRegisterId ? bufferData.m_registerId : RHI::UndefinedRegisterSlot }); - } - else - { - // unbounded array - srgAssetCreator.AddShaderInput({ - bufferData.m_nameId, - bufferAccess, - bufferType, - bufferData.m_strideSize, - useRegisterId ? bufferData.m_registerId : RHI::UndefinedRegisterSlot }); - } - } - else - { - AZ_Error(SrgLayoutBuilderName, false, "Failed to build Shader Resource Group Asset: Buffer %s has un unknown type.", bufferData.m_nameId.GetCStr()); - success = false; - } - } - } - - // SRG Constants - uint32_t constantDataRegisterId = useRegisterId ? srgData.m_srgConstantDataRegisterId : RHI::UndefinedRegisterSlot; - for (const SrgConstantData& srgConstants : srgData.m_srgConstantData) - { - srgAssetCreator.AddShaderInput({ - srgConstants.m_nameId, - srgConstants.m_constantByteOffset, - srgConstants.m_constantByteSize, - constantDataRegisterId }); - } - - // Shader Variant Key fallback - if (srgData.m_fallbackSize > 0) - { - // Designates this SRG as a ShaderVariantKey fallback - srgAssetCreator.SetShaderVariantKeyFallback(srgData.m_fallbackName, srgData.m_fallbackSize); - } - - if (!srgAssetCreator.EndAPI()) - { - AZ_Error(SrgLayoutBuilderName, false, "Failed to End API."); - success = false; - } - - if (!success) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - } - - Data::Asset shaderResourceGroupAsset; - if (!srgAssetCreator.End(shaderResourceGroupAsset)) - { - AZ_Error(SrgLayoutBuilderName, false, "Failed to build Shader Resource Group Asset"); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - if (AZ::IO::FileIOBase::GetInstance()->Exists(shaderResourceGroupAssetPath.c_str())) - { - // This would indicate a problem above, making sure each product SRG asset file path is unique. - AZ_Error(SrgLayoutBuilderName, false, "Cannot overwrite existing file [%s]. This likely indicates conflicting SRG names.", shaderResourceGroupAssetPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - success = AZ::Utils::SaveObjectToFile(shaderResourceGroupAssetPath, AZ::DataStream::ST_JSON, shaderResourceGroupAsset.Get()); - if (!success) - { - AZ_Error(SrgLayoutBuilderName, false, "Failed to save Shader Resource Group Asset to \"%s\"", shaderResourceGroupAssetPath.c_str()); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed; - return; - } - - AssetBuilderSDK::JobProduct srgAssetProduct; - srgAssetProduct.m_productSubID = static_cast(AZStd::hash()(srgName) & 0xFFFFFFFF); - srgAssetProduct.m_productFileName = shaderResourceGroupAssetPath; - srgAssetProduct.m_productAssetType = azrtti_typeid(); - srgAssetProduct.m_dependenciesHandled = true; // This builder has no dependencies to output - response.m_outputProducts.push_back(srgAssetProduct); - - AZ_TracePrintf(SrgLayoutBuilderName, "Shader Resource Group Asset compiled successfully.\n"); - } - - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - } - } // namespace ShaderBuilder -} // namespace AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutBuilder.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutBuilder.h deleted file mode 100644 index 9f0953a165..0000000000 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutBuilder.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#pragma once - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "AzslBuilder.h" - -namespace AZ -{ - namespace Data - { - class AssetHandler; - } - - namespace ShaderBuilder - { - struct SrgData; - struct TypeIdPair; - - class SrgLayoutBuilder - : public AssetBuilderSDK::AssetBuilderCommandBus::Handler - { - public: - SrgLayoutBuilder(); - ~SrgLayoutBuilder(); - - // An *.srgi file is nothing more than a regular azsl file that simply includes a set of srg/azsli - // files, and in turn each one of those included files define "partial ShaderResourceGroup"s, which are - // merged into a single ShaderResourceGroup by the shader compiler. - // So, *.srgi are supposed to include files that only define "partial" SRGs. - // And any file that defines a ShaderResourceGroup it should not be "partial" unless it is supposed - // to be included by a *.srgi file. - static constexpr const char* MergedPartialSrgsExtension = AzslBuilder::SrgIncludeExtension; - static constexpr const char* SrgLayoutBuilderName = "SrgLayoutBuilder"; - static constexpr const char* SrgLayoutBuilderJobKey = "Shader Resource Group Layout"; - - // Asset Builder Callback Functions - void CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const; - void ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const; - - ////////////////////////////////////////////////////////////////////////// - // AssetBuilderSDK::AssetBuilderCommandBus interface - void ShutDown() override; - ////////////////////////////////////////////////////////////////////////// - - void Activate(); - void Deactivate(); - - static AZ::Uuid GetUUID(); - - static void Reflect(AZ::ReflectContext* context); - private: - AZ_DISABLE_COPY_MOVE(SrgLayoutBuilder); - - static void CreateSRGAsset( - AZStd::string fullSourcePath, - const AssetBuilderSDK::ProcessJobRequest& request, - AssetBuilderSDK::ProcessJobResponse& response, - AssetBuilderSDK::JobCancelListener& jobCancelListener); - - }; - - } // ShaderBuilder -} // AZ diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutUtility.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutUtility.cpp index fc3fbfc32c..db7251cefb 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutUtility.cpp +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutUtility.cpp @@ -109,6 +109,7 @@ namespace AZ { RHI::Ptr newSrgLayout = RHI::ShaderResourceGroupLayout::Create(); newSrgLayout->SetName(AZ::Name{srgData.m_name.c_str()}); + newSrgLayout->SetUniqueId(srgData.m_containingFileName); newSrgLayout->SetBindingSlot(srgData.m_bindingSlot.m_index); // Samplers diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutUtility.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutUtility.h index 43607f600c..140e8849a0 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutUtility.h +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/SrgLayoutUtility.h @@ -15,7 +15,7 @@ #include #include "CommonFiles/CommonTypes.h" -#include +#include #include "ShaderBuilderUtility.h" namespace AZ diff --git a/Gems/Atom/Asset/Shader/Code/atom_asset_shader_builders_files.cmake b/Gems/Atom/Asset/Shader/Code/atom_asset_shader_builders_files.cmake index b3b2032c54..7f983d218b 100644 --- a/Gems/Atom/Asset/Shader/Code/atom_asset_shader_builders_files.cmake +++ b/Gems/Atom/Asset/Shader/Code/atom_asset_shader_builders_files.cmake @@ -21,27 +21,19 @@ set(FILES Source/Editor/AzslData.h Source/Editor/AzslShaderBuilderSystemComponent.cpp Source/Editor/AzslShaderBuilderSystemComponent.h - Source/Editor/AzslBuilder.cpp - Source/Editor/AzslBuilder.h Source/Editor/ShaderAssetBuilder.cpp Source/Editor/ShaderAssetBuilder.h Source/Editor/ShaderBuilderUtility.cpp Source/Editor/ShaderBuilderUtility.h Source/Editor/ShaderPlatformInterfaceRequest.h - Source/Editor/SrgLayoutBuilder.cpp - Source/Editor/SrgLayoutBuilder.h Source/Editor/AzslCompiler.cpp Source/Editor/AzslCompiler.h Source/Editor/ShaderVariantAssetBuilder.cpp Source/Editor/ShaderVariantAssetBuilder.h - Source/Editor/ShaderVariantAssetBuilder2.cpp - Source/Editor/ShaderVariantAssetBuilder2.h Source/Editor/AtomShaderConfig.cpp Source/Editor/AtomShaderConfig.h Source/Editor/PrecompiledShaderBuilder.cpp Source/Editor/PrecompiledShaderBuilder.h - Source/Editor/ShaderAssetBuilder2.cpp - Source/Editor/ShaderAssetBuilder2.h Source/Editor/SrgLayoutUtility.cpp Source/Editor/SrgLayoutUtility.h ) diff --git a/Gems/Atom/Feature/Common/Assets/Passes/EnvironmentCubeMapPipeline.pass b/Gems/Atom/Feature/Common/Assets/Passes/EnvironmentCubeMapPipeline.pass index e086f62e27..70f1999d8c 100644 --- a/Gems/Atom/Feature/Common/Assets/Passes/EnvironmentCubeMapPipeline.pass +++ b/Gems/Atom/Feature/Common/Assets/Passes/EnvironmentCubeMapPipeline.pass @@ -206,8 +206,8 @@ "$type": "RasterPassData", "DrawListTag": "forward", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaderlib/atom/features/pbr/forwardpasssrg.azsli:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "Shaders/ForwardPassSrg.shader" } } }, diff --git a/Gems/Atom/Feature/Common/Assets/Passes/LowEndPipeline.pass b/Gems/Atom/Feature/Common/Assets/Passes/LowEndPipeline.pass index 38a4524aa2..9317fc6396 100644 --- a/Gems/Atom/Feature/Common/Assets/Passes/LowEndPipeline.pass +++ b/Gems/Atom/Feature/Common/Assets/Passes/LowEndPipeline.pass @@ -158,8 +158,8 @@ "$type": "RasterPassData", "DrawListTag": "lowEndForward", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaderlib/atom/features/pbr/forwardpasssrg.azsli:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "Shaders/ForwardPassSrg.shader" } } }, diff --git a/Gems/Atom/Feature/Common/Assets/Passes/OpaqueParent.pass b/Gems/Atom/Feature/Common/Assets/Passes/OpaqueParent.pass index a691fe2534..f45f5c8b07 100644 --- a/Gems/Atom/Feature/Common/Assets/Passes/OpaqueParent.pass +++ b/Gems/Atom/Feature/Common/Assets/Passes/OpaqueParent.pass @@ -122,8 +122,8 @@ "$type": "RasterPassData", "DrawListTag": "forward", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaderlib/atom/features/pbr/forwardpasssrg.azsli:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "Shaders/ForwardPassSrg.shader" } } }, @@ -222,8 +222,8 @@ "$type": "RasterPassData", "DrawListTag": "forwardWithSubsurfaceOutput", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaderlib/atom/features/pbr/forwardpasssrg.azsli:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "Shaders/ForwardPassSrg.shader" } } }, diff --git a/Gems/Atom/Feature/Common/Assets/Passes/Reflections.pass b/Gems/Atom/Feature/Common/Assets/Passes/Reflections.pass index 3442102291..cd548d0aea 100644 --- a/Gems/Atom/Feature/Common/Assets/Passes/Reflections.pass +++ b/Gems/Atom/Feature/Common/Assets/Passes/Reflections.pass @@ -89,8 +89,8 @@ "$type": "RasterPassData", "DrawListTag": "reflectionprobeblendweight", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaders/reflections/reflectionprobeblendweight.azsl:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "shaders/reflections/reflectionprobeblendweight.shader" } } }, @@ -203,8 +203,8 @@ "$type": "RasterPassData", "DrawListTag": "reflectionproberenderouter", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaders/reflections/reflectionproberenderouter.azsl:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "shaders/reflections/reflectionproberenderouter.shader" } } }, @@ -253,8 +253,8 @@ "$type": "RasterPassData", "DrawListTag": "reflectionproberenderinner", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaders/reflections/reflectionproberenderinner.azsl:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "shaders/reflections/reflectionproberenderinner.shader" } } }, diff --git a/Gems/Atom/Feature/Common/Assets/Passes/Reflections_nomsaa.pass b/Gems/Atom/Feature/Common/Assets/Passes/Reflections_nomsaa.pass index a35352b9f0..b3d7ef0241 100644 --- a/Gems/Atom/Feature/Common/Assets/Passes/Reflections_nomsaa.pass +++ b/Gems/Atom/Feature/Common/Assets/Passes/Reflections_nomsaa.pass @@ -84,8 +84,8 @@ "$type": "RasterPassData", "DrawListTag": "reflectionprobeblendweight", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaders/reflections/reflectionprobeblendweight.azsl:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "shaders/reflections/reflectionprobeblendweight.shader" } } }, @@ -191,8 +191,8 @@ "$type": "RasterPassData", "DrawListTag": "reflectionproberenderouter", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaders/reflections/reflectionproberenderouter.azsl:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "shaders/reflections/reflectionproberenderouter.shader" } } }, @@ -241,8 +241,8 @@ "$type": "RasterPassData", "DrawListTag": "reflectionproberenderinner", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaders/reflections/reflectionproberenderinner.azsl:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "shaders/reflections/reflectionproberenderinner.shader" } } }, diff --git a/Gems/Atom/Feature/Common/Assets/Passes/TransparentParent.pass b/Gems/Atom/Feature/Common/Assets/Passes/TransparentParent.pass index a9db59c646..bef49b777a 100644 --- a/Gems/Atom/Feature/Common/Assets/Passes/TransparentParent.pass +++ b/Gems/Atom/Feature/Common/Assets/Passes/TransparentParent.pass @@ -123,8 +123,8 @@ "DrawListTag": "transparent", "DrawListSortType": "KeyThenReverseDepth", "PipelineViewTag": "MainCamera", - "PassSrgAsset": { - "FilePath": "shaderlib/atom/features/pbr/forwardpasssrg.azsli:PassSrg" + "PassSrgShaderAsset": { + "FilePath": "Shaders/ForwardPassSrg.shader" } } } diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSrgs.azsl b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSrgs.azsl new file mode 100644 index 0000000000..7ed080d5e9 --- /dev/null +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSrgs.azsl @@ -0,0 +1,19 @@ +/* +* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or +* its licensors. +* +* For complete copyright and license terms please see the LICENSE at the root of this +* distribution (the "License"). All use of this software is governed by the License, +* or, if provided, by the license below or the license accompanying this file. Do not +* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* +*/ + +// This shader is not used for rendering. +// The only purpose of this shader is to have a shader asset that can be used +// at runtime to find the RayTracingSceneSrg and RayTracingMaterialSrg layouts. + +#include +#include +#include diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSrgs.shader b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSrgs.shader new file mode 100644 index 0000000000..5512b1ad4d --- /dev/null +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSrgs.shader @@ -0,0 +1,44 @@ +{ + "Source" : "RayTracingSrgs.azsl", + + "CompilerHints": + { + "DxcAdditionalFreeArguments" : "-fspv-target-env=vulkan1.2" + }, + + "DepthStencilState" : + { + "Depth" : + { + "Enable" : false + }, + "Stencil" : + { + "Enable" : false + } + }, + + "ProgramSettings": + { + "EntryPoints": + [ + { + "name": "MainVS", + "type": "Vertex" + }, + { + "name": "MainPS", + "type": "Fragment" + } + ] + }, + + "Supervariants": + [ + { + "Name": "", + "PlusArguments": "", + "MinusArguments": "--strip-unused-srgs" + } + ] +} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistance.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistance.precompiledshader index ff862d587f..0322f750a4 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistance.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistance.precompiledshader @@ -9,10 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridblenddistance_passsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiance.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiance.precompiledshader index fa2f9db810..f6b19e6f5b 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiance.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiance.precompiledshader @@ -9,10 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridblendirradiance_passsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateColumn.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateColumn.precompiledshader index 1c8c4852c4..e9ab96b088 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateColumn.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateColumn.precompiledshader @@ -9,10 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridborderupdate_passsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateRow.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateRow.precompiledshader index fd99d34541..bbfd19ce48 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateRow.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateRow.precompiledshader @@ -9,10 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridborderupdate_passsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridClassification.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridClassification.precompiledshader index e7b15190e5..75fbd1d7a3 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridClassification.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridClassification.precompiledshader @@ -9,10 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridclassification_passsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracing.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracing.precompiledshader index 5826fc086f..a9f75bff7d 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracing.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracing.precompiledshader @@ -9,10 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridraytracingcommon_raytracingglobalsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingClosestHit.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingClosestHit.precompiledshader index fc99fb97a1..15fb9ecf52 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingClosestHit.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingClosestHit.precompiledshader @@ -9,10 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridraytracingcommon_raytracingglobalsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingMiss.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingMiss.precompiledshader index 75db2ce8c1..38bb7e3de0 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingMiss.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingMiss.precompiledshader @@ -9,10 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridraytracingcommon_raytracingglobalsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRelocation.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRelocation.precompiledshader index 05c3c7d87a..3517cd7955 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRelocation.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRelocation.precompiledshader @@ -9,10 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridrelocation_passsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRender.precompiledshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRender.precompiledshader index e8249fa178..29f9476ceb 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRender.precompiledshader +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseProbeGridRender.precompiledshader @@ -9,11 +9,6 @@ [ "pc" ], - "ShaderResourceGroupAssets": - [ - "diffuseprobegridrender_passsrg.azsrg", - "diffuseprobegridrender_objectsrg.azsrg" - ], "RootShaderVariantAssets": [ { diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance.azshader index 4a5edc370b5c1a1d22dd012739345fd0d299317c..596f9a383eb7adc32a15e4712b7238c0188e8246 100644 GIT binary patch literal 90350 zcmeHQd0bP+_P+r{tQ&|+-LcfI6%bG=Dhdb^6l4_yBbdSsM6zH40zS1=#HvpP(UwgV z)K*1QP*f09+*&plswlNmc|KoVT6e3JTKP@FB1vY#oi?$*_d5Jx`{9yvzBw~{_wV|A1NL$7T!>B3)+-nF}wwJh$dRh2VFSElsu zcPscp`nU(x^Hz5)He>-Y3P0>Miw~bSzUc5gy3upv-o)jL$K2~XT`p0tbMeg=z6P#$ zlijNaY_>M-5m&a>X{7R3>Fz}HxY2?rkH{##SVVDpEfg9+q0c*NSa3x7(>$&~N>k-m zjC;>wo$T?CUZscUNIvaeoBG)FdoHJXMI8+h1>l#Dm6q&h`~mQtIlt&nd>GuA6GsDJE z?0?=ly2kO&%iz5ka}tl~%(ef-jqS`noAz1rx+k#&KiOM32Ekj=|n(LCB`Y$QGx zr_77U_&Ml1x1!gt=E0^}i*@6rVJybRl1&b{3Jy#~lq4FAAC`vJDahUwpQiINbj8>( zm%y(N)?eBttf{e*f8}>RSsPaLLGZB5vVPC?LsoszjHlT5NB_~*p63twpR+hEsWyVH zET!q#jLd(?=JI{xgN|k_x9@ehNA#y^W)}GN@R73oDd2(mOx|el2f>q0ZY@)p$zn+i zR}xCajn_S69$B|-dCtA*W?6b(_wNkNvoHXk>Uo&e>ng>bYqe%$U>~E^bdJy7&nF*< zsF>tcC;xt|uWck_<`+8-%G;ajc_L)SNcQrN3~q0orEjjEJ^gaxjfQJqOkX;YGdO0> zIOXYjGW=o+MX{r^1IJ#!V14|M?i}-#tdNP<@@g8JMJF1Jcz7Vp#XIHst{{i#%Az^2 zp`_Snzj<__vUVuT>qubAVg0Hf`yP6AlPz;DO`R$)nI;AGPkLft?Njozi(IO~(3G#e zG83l7?csQ{9v?Ur8w~Rgo?NNaM-oQG6>b`5pqsmAD#s;|x23eU(fy!LMWWM03*ZA6 z&>>M$3$b-59W0HGq$P{E5cQxlOmI};6V=b-BBPDbs@VgZI`LWyUFO|BCwrlXu z`J&-^Q`+V4qA7NLzo5%IXuYv|#d9*!ht71eJ7;o_VxQ@5x-B{LR$btG0XuTW&yw=Y z%@XAH(A{8nV)AT1=l6?8^_$`7CA5V4%bvpENSW97=EnI-xH4yt@R+(3$E`6gS9z?# zOkz=-3iIFe;ZNS%@3au|1bpldfPAwfy%mtaGhl%1-eO6gC~g!jeM@%K0fuCMc*&8f z_tJSF***Kk9^c+iMm7FBiDJL73b+>U*feBAADB%afBH?Ta__G1}JfRqf}$or$N|ldL1sBIpzL&beLJ?Ft$>!)>sy zxL~dG7=P;ME&2ZR%zJa!ZDoO0+t~q^g9~CJz<0Q*^X=#o;eg{A7QtQ{s|t#E4{HnM ze_K*}Wq7)o_ZMGTX0FKZcJr~^aysAJm^@hJ>%FUR*omBF3&NK|_c9e%(Y%{+)^;8} z&%rxA{;_RvT)tVPy4~y#Xlq;Zc-myUI)*l-#fzs)wg`dEw_eaGp6<;GDD?|UUcGm6 z{+Hi=o-eogIicm}yA}s^+v{%X{EtcNE`YynsJ=R4`(%f_J=uZdG9p$VJ$BOTs{C(z zpKYQJM*0V@j3~%VeIZ;9{?^B?5coHR1g+y6rGn2@BH@OD*N_m}Srj4;1rEf8 zD-?2(Hk_<=j25aGMT=;Ol*WZ>uXU)Z!#yin_y(pg9ZL()OT|g+_})`7CBWC}VLCv^ z);hYr?a_(E5+PUM$mgQ%<)(E+z1t&N1YX9~;_=ivp26+$$agJ2SjZt^y2f^WI|ciVC8m;Dui#<$>`;0-TQo2-d7dPHscm16(8)LMb0(ArU+fz3F)C z%15Hpl-*RPoI77MT_P4m$q=?WHRQk+Y8{|)`zaU64VCSsNH|4EI0hP80sSCwEa#4$ zhlEsygk-2yNS0_w7ylwiR%l2Ke-R{WG^9sbhorDCwoGlyKQNIr<=wlso7+ej6v`|h zhNEVaq1cYKU-eyj`&JPrEqHNSaQ%ZXOMH0pz{pJB>d%br=Z=oIH__Fdnz^w#5Hu=q z?z-jg1{oIZGfs%At1*TKxfpt{<^a*ul?EG!`up`sshp7M8oqclD)iO6Ef~cJgQ|a5 zJq_Xk=!OSCVc76A4aC!g{SJYL<{dmV@a2Q2asZynj!qeP%6s7{Xa1In2cruf4AlDt zp3?4kN>yJ8VG#g42(o)s3}2%f>uMLb!PBgdr&-m@L0=2-Fc{)tfS-H7j*h4GT}@~O zn>L=-{+iGV&UkoQ`)WcfIL6^=?T4qekNLOB91FonBq^L)@q8_0{wY?WG-kp)Q z!WTuULq&0JW%jLB<&pt4aHf1n?wGBGD`rijfN{cBzOG@tYve5KW;dri@6PWo&+haX zj*8lXLn`MQtMR_7E}5vrikc}bMgd@1<^>8|@w3-C`b#Qb0*MrRU<}`Ka>nW{eaHFP zWVzZ7oh-2RkRL{LbGr7_eP-wM@kV`K|GBeXO)tNk;y+&RN%DZ6sgZM@mnAOCyv zOSajA(ArzI*8_U@pIsHdv+sm@k&6vm#{RRdEKPA3=r<$1a@4(FmT=hYZP9{2!lEZE zdT4T#W~u&QVKz@|;hA376r70R#hXG*}G{T~nC5^}_b**$T!lFkd+H`!KhMHy|M5g8Z7S&4$ z*d00wA7RnUYA;|jU{L0?{|km2b_a#R2cnQ#o{p+lgsQwL6gtA9CoFnovLi#f3~Fx8 zN6vh(W(kWPnllQ*)Cg~(spFffw@@V%phgr#z7gp3G&G{BQ;x9c)#W3@*<^%8uUO~_ zZY9E^SG1A>>w&Q735&j^-Wg%hGa?DXmk%Ckh_L7>im>PzO*d6qB4N=J7QLEmEW)Di zI1P@l=w(GJ8PPky-EkYmMTe2cQh%X=w^0%nee<<7Gs~+6tYHyMyb&NQdIo8=ghk&{ zS=pSh=wXE-!EG&qv`JX>%4N65B5g%j^vbpZ0d~Z^A}o4kTX`aFMOgI8wjwNg+dt0? zrwEH)d0v&F)?nK!24k~R>O}p|vgp~9me@7C4!g43|F(Vfrk7JJoa_c(V((4==GKS9 z8&ij!at=#kEeL&4eB(K%#LI09gxjySt`png{ufTxn`4D%&jc(>ayiv0)pX|>ImLcc zY~a3tEwew%`?BXZk)0ev<75q3{_X$3L*O}n;D=lCZ_orasizf+MP{K=s!n>f%X6gz!i*oK<*Cp~xA2Bz)3%Gp)Z zbz!4?kWls(U*43Pl`*odBC6i`s6@yPUs=`ccMI&tbVF%77_7SR;B|?I77jVu-xMh zY&Rs%*qnLwy{z1QtLA~c^wc|(f=)?V+M zASt%bSUP}hx%u_0gN^m$Mo?71Z{LsTqx$QXEDIu}ovDaT$UONwt{sZQv5gpsaAOyK z&3eLGQ|M*bd8Dgpd|Gjepx^4(<&E11@maxEz5O~_I6OW!-fUdei25wf)9i99h#25O z2VYyi-zdMUQQk6-wFkZn>{8;MatQci@Z{Qp^^PZu4oiy9xHT;wb+5~r?E)M56RN!7 zhur6^F6;LtY=7z)c_c5d#+X-9j8Xy|`1U)K(je-an$<&}l-qZ%oXUzY*p&Op-C6mc zE^IQ8RAqj`S$2GDeB-rOt5!~M(A#NO$$55C90foD9maLPErCBtcxaXnf8zLj&q2sn z1Y1@4mZog8zfL^>V4FU5I_v%c>xmByXQbu$AJDtoGbfJo)0X}f5PN~|zgr@n2z|od zKW&Kd`s{TZ){GDOJa49#SK&XdJZ;{o#@wJ@bKRX@rELB2P`7c3v1*3!UfI$8$9jL0 zV^=Xfa*eS`zoPR$AC}Jsj@^X!dO@B5NUMMJv@xyEO!zE#T1`QT-|VlyOtozutUFyz zKZ1M)%({R6zVZm<36NI0Y@jb(nrse3zB(x6L%t@&F2I&#G|8kTYm>Mj;%TAV6M91d z+ZX%kXp_TH)Rg`)^X3{BtQUFi>L)xWfA3$t;P$bp!{_BCZi^hr%6q@EIoS1Qek&KN zSN`q9>6?SU%lOLS-u1;dX=vo|9Z|F}3N+5)hDw`*hK-*F8ug5rTfBDbLf)3cm-FSK zbW@yGee=v+xapsJPSxzQxWuvMR5(Ij`$0`Mt^U0%9@(No#XQu@ituj3bYgO{>_4+~ zpPcM4aGIW!x5M^7x8oy;Dl+5E8hU-r$s8o4CdKVHY{`qk(q-81dmZhR-fq=9u?WnJ6TcrQ(R5AezPrekGHGfqK z!M`1dq}Ylq9NOZsm^M-+#a2kM6;f=4v@F$n-l=+SGAbVy(DxAeu$s!&CB;_c=iTPb zol#F*2DPJ6!#M^yoSI5+R-3egf(3|=h*_p7Sftp>uGHj2hn9TD*7quA9if>wlR=Fy zX<7QaeQj>T4P#kd7-p#oC{sFVeW|FHPawrs)D_?N^^9S%Ys6djYOuY?Mnd}X;}(Fg3Puq)hS1ct*G;5 z@G>H#*otBq5xA8|u@yxtDeQ}+*a|7OLW-?4$A+0@G{ctZ3jXWX<4c~f}~|Bb1(V`HLqlx^JW@2)6J_)bD}79qEH1N0AhH-hyQ_= zrFsLLL;IMFa{SNEh1~30gPvxQmZkhqM*%GgZDoX;a~Dem=7dE*s^1Jp!lF0-O&^lV z2@+-z{b2};p0MbvpLuWYx~(kGYCAjNa&SRR1jt~zsq^jV65)X385Y4_8>P(O$ zsVO!hVbLdG4<%vI6BfNFL>vk(*j%_mAs4xP?UBn@Q;b+{au%`76Pt^~ z5+PUM$mgQnv76S%6Mnmc8b89Kr{zN@A4I~UXUGO8Ec!o|07h8!cqd*suZytg75U+C zD-jmGqLmc(MZ%&dEPBGC$Dyjhmk%Ckh_L7hi=H8)TQ$~2T9%TQrE2)>q-7~-Sqf@G zDEJLf5E8u7OFe0crvx+?#H6yfv1OR${iwgtz}qMZiyr4_!YqP`Hv)u3PgwMXMgP#P z{WXmtE_=`rMfsyh%Ti^6>sX|%NXt@XTY*b41aX?QELFA@xZpw9inJ_Mw$%=#t@3eQ zUp`V)A+D%Gq^KfXQG`WLSoG&S%8QLcp5Dw)pJ?#k!lEZFOPM!LB`r(K_aD8uJ3-Id zjxB3>z`LJk6*JbO)Bdc3RXyh=H?UnH>`v0MG+B8w1o=7|ZH(h`I+B(w;!5~jQIv&4lvwD)6-EkZ zKRz8pODv+L;2#I6l#T+Q3ZbP^vBZ}aMq11ee=Pg28S_4%i=qV)ToLI6N@|#p8YY|t zm$zPp*KtAIQ> zL|FN2R1UE$B2j8p4_Vac5)#cSI z#WR`0NXnD0wN%3d57t|*VS)!v)n@H-VNkOS@CgyKOjEP}?ba~CGnpzS+)=_03y%_k zW4v#;gqDVj1)<2I8xyo{yT7IrD4q>1gzZXO$d{_CXb~-u(ykH-Hx#@xh0xAgt6_o% zRdu*Qr_DDoed$dD6U#|b#Ji~ zD4wBI3rc9ch6x@(g-Rid#DZuc?JizK3u#f5Z(JmebivtLA5#Tna`)yFA`uG&9y}fh z`JlbU4kR*79p6;Fg(Ej4g2xS^JKnkg?^w%gL3PS$y%Q+jlrwJc&RPmRAm!)jPa2!P71~!D5^VnME-1Adng+47MqSFc2g_g=caj zyisRx?S!Yl6P|vB194lN6;CDU1j@9T8tDYeJo}z>0%dM1aDRoMPLWQa%2~~%6Dad} z1@00M^NQ3kQJz;ILXNOiL(4gk#dMo!K#F>VD+)xU;i%f^bBs}yX-*Uf`=U`{cLI&! z4V}H>(7tNf$tP^(>l)U(M$W=+c5}+}?)>iZ>`ss2oaz;IG=!X{2XI_tHQt9j0-_Qt zYNoKJt~A&<)Zed9O67!1SJaDp6Zk>3DV<$eA1~0$lmKuPdteOTa&pG%Eq%xN*<`ue z4xKEp^^m_J=sigu&@+{Cy}OM!`}*U5Z+^)(dk|WCtM+<8@BXu^;&=9)P%m<^Vav)f z*jARNI1KcgkzP6K-Y-iyZ1%QjL10s-%1fq6LH(1S7+Cw1{OlqZYA`hAYp=|NX>ofv z-mJ$5PQ?b7t#ulyOpNs8N~J!MFeMd&+&xn{E`hu)rL~Rj2Yo6CV;?iR1Yz!kEW%*s9xAyJALorUzssoUNjR@EV@(o_M+y!a#&E&*w@p z&)|eH&y)&D81u~8x`Z*$+*X7!&)imoG0)sqgfY+DR)jIn+*TkU{5NFGYqRSoxRYf& z-2cMKdULGs?3sXNNiL^4rJC+M!{8;MatLfn;K{WG>m5%R9hMZIacf#W>Ry*K+XXiACscXE54q1-UDoeQ*#6Wp z@8g v@@yK?4O6kM8n77YhDo|%l5Uu9r5ono#03FAOqzcF|7iLdkJI!MjNAVKxIm%V delta 695 zcmaENkoDA2CUFKJVD4b+)bans9p+fOUN8THZ*Jbo$%V|K6LqZWr?sv;wC0O*waU)G z!!s^uM#yZIko)QA5NF9$zHqKXyP>bm1V?FSmg2M}Z6&*R{yI_-bY{lsSM2wn`MI`w z@!bNM4g)_5uRCne@&=H!&- zX66|umSpDV!K4a`@{>~2i!xJ^a#HhBQZkE667!N%;|mgti;IiW^%ARqBm=|7ls0B< zk7%Q=$+tT%J~f{dIk!PA$4gSBWx@%N!&zm%e++I8buQ_Azm~sZhwaqKfh>kB+x36A zP2O(YAjl>^=~&?GX6MS)F+q$UHyx_j%xHSikRvkiQ~v36`HPcprLAZESrA`-Ve;QvS02MC&VbVqT9frE*&zrU5ko diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_dx12_0.azshadervariant index e362a352c2aa763c73c31f61b49f9afba0f1cd19..8481bdb15bfb4b6e4cdf4329b8539d31b98fefb1 100644 GIT binary patch delta 507 zcmZpR|79=E00hh(jDh=Zh??DSL z#ne1ynbz`2&hwrrJvT<~O7tx0yLYBI0E2{qp;Cf@0bht5R8MASzmjm8L8?(|vbMgp fLcZxwje;ACnijrt)1Au_`1XbT8hs9sNl*X)l*XTe delta 4514 zcmexm-xe><00hh(%=3Lyy$hkFDy6;w#%(yi#a!+yC=xIkU^1w!NcXK-=T9_>`P_}`p;M;XFTx+U#gl% zvBK8lg$wpRf3Z8nXKylRv*31*=?n}f?5p;vF$T#NUA>#>+_24j&fy#GbG1*r;N9QC z7=C46!0Sg|`z9=@KRNr;E9c)aC$HDMD`KAF^xDGLY2n(_8Q&kg`v!6~LrlwuxJ$2e z>?W+==W=Bw@2~ZhyMEe2WOnXZHN&Bo1OiU9im4d$18o+ zzIT=rTfOGYzOFR4e$~2;SfCUWLrhg=Q@``A3E8#peO64L(CWx``DZgkQ)A|y9av-- z8DfsI=Nn>?0XqAz*m@IVrsS&4Mk= zM}By>P5slD(aVzOz`)25RkMj(07D!Y7qY$X75X>U^JW%D`%arNZ-1Utfz1g=hd4{d zp407GI)^=Gte$sJReX*7j>w)nV$DT69cI-^c^J<5_h<93yC!N343WQYtJRBQiZhUG z3i*cABe{iqQ^+@@9@G1vV4<5+>IudWZJkn2N@AgbQ|iGfk)A0IHLcX6X9_wyr5=_M zX%M!=1Z_Q*G69=Y7-C{9v(<4FXy<>-{lwU{B~XA}-BYRTvO-Yv*~6O=WgFgTY&{I zQ07)vpVNN9ZACke`226uc*S{SagG^ShT+76d#k=Na`vrjUi{gqVEdXi7lqSy??kr+ zW(lxdUi`v(1~&WuL+nSAf@%8CaKeH8ls#iM$COp|Fa0(&7XIfbIz78Srf%Q-hF`b- zbhKGGvMjef74zj_ehH+)5Wexd2D?o2d)*DlGW7^ePTy8<#^Om}#dTud{{^}OXg|;e zmNV_$7~gI(wt6q%HDh7;CYG1{3oBz@&yzffCB%Tiys{|Y3agCAdS^M|z6HG#yG-Mz zuJNu94BS$E?K7mt(Yep?FVWZK&!qX!w(^*?R^W-oR|j^j-z#!_q3ubxf-YeN@g3*h zY=fi~TMH#2EHXehbv_F)Q@%U9xjo+b;>O)!p~sd^x2%Um*b8oDb1a&GNw52F+jcB6 zK;!n*Nr#{t2Qdwlkg<549~h3{`WeZe_4M*64u96e!;Qus#o^C-cq5BiF^a>ZIQ&@; zPde0!Q5+t{;ZKD9z_dnM(k0EKIQ&@;&j}2Y~l`*GJp&6143bhbv8fq@N3TL7^K5Jv!U z1`xji;vamIg_w4!vhXo5Br&iuG%_z2f zJY(wQO3{Y6*$N6b*b*0-=^VMDbHu@-FF031>EtYhH;v|w4x4ySG?|_@N;%NxaNB|5 zI-8FGUn28{#0Z;w=MT9OZG1c#Cap_%^7{G;{Ad80bE~b9=S0E{2c6`EDF@pY2{Shs zPxcVgmbjA8bb$S0nDwol|yRJo(gd@6w$Y&-!wn0ftGX1Oo#!5KJYK+1c+ToMw<}l%70a m-de$w`G{V@jYUlhU%BbdWeI%yLVk@t2T+gN@{5la0cim3OnH9* diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_null_0.azshadervariant index 17b4f0c3cb5168b9654cfef4d9a121661a033107..2f2cd5cccff43f5abd9e32854ad3bbe7a994c792 100644 GIT binary patch delta 68 zcmbQH{ES(g0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-ML@J1ou^ruF_jYUlhU%Bbd RWeI%yLVk@t2S^VT004v%7!d#f literal 4502 zcmZQzU|?YGV4m-r>g{6blh}Lq=`GnObRz;TyI}%Bx>fQ)%kg$oP2cD9EKD7 zdJ6R!Z^a~stZEGK?%3b=wNYwUV$7MA8>!B>CS=#X_gOK0LaQU&<)6(!bAiCa*ZzBy z`o@2Udb-@NFEB~t{KctlQrR_O^-9fClO)BT#GjvO^6pG*C-+VPhz2CGvOfQ?0bykf zk#UcW-z+%Q!L$B}^XW-Bk!w6W6NMNUPIO!hc*0oICdj7}>UyC$>9EZD{CBfGE}Fiu z;3(KGw}vg|+l691ac&&;~n*&o>xc!)FfqhbRW|iwjhvXq%so4>$S^X*9A(cp#3IAM5OdgUu{Ks2h7&74^(Qfw72mjV z__mwY!qD>%FBuC@kCL1eUjAmm7Um;AyxXS!Y0T(l$#Y;}WQeNS#4Ug!4vYxdUiS+9 z8|!&9i=%y~&6u}8PpZJ?grh^8C1cO&b}gO59y3T}vJxUFdC5ug7}8m~ByEY2|l%P^dHaBtN&M$W!< z&5J)f6>ML#=Av-g?wz(-x+HVa3V<+i6{z8uUifmAHQH-6V(muY^ly8*k5)3?=|v3L2L z{@b=4iww}TJ$2F{*i8eaVJu$f2ZkcJLLT)dT5~sMG&V;Q?P%T{ErLc%TCCL*?g|B1 zeR;gR>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "7181601620235669059" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "13399614758886099705" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "634125391" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "7181601620235669059" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "13399614758886099705" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3189070339" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "8603598590297091788" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "6181996982157220722" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_vulkan_0.azshadervariant index 8ed12bf81cb9a1f6114c2cbe8c8591cda346bb5a..cb5de53e97cc33eacc855b85c4a093a879afd88c 100644 GIT binary patch delta 69 zcmX>VKg&U!0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AKu(0pdhc1Z~9ZC;Krh+g|FOn R=duL8eIdU_p97=`3ILeT7v%r| delta 4114 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 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblendirradiance_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblendirradiance_dx12_0.azshadervariant index c51aec01bb0b377a28a4fa164b8e56ecfdfa798f..a35179ef7f12d0b686216ab559bfc4d2cacfe1ec 100644 GIT binary patch delta 501 zcmcbXbj(?t0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-MLu#V$>yWpZJg)Wkl9R%I2 z=D0*SIkOy7nrrKIq`M_naYo2f4n;W(EeA2u~j-pjH8(3JsvRlk%xK)qm~goTS4boTkDKjtr8r^ z3s>+utAq--*nUvs@Yu!}xh^e|jpv3yiZsW8OAVZd3@>DGc^6C1nx*i8(cIBt3$ODe z9_fywzYiohA1pl}Hu;;Xw#1Z!ERFn2c$p<<9F)wFIL5$xF5&P5w#3I>L!|@*1HM3bsy>IEiC27cvwk5X`=x}_0aA`qlYbjnE99I0 c)F`;IsA=IVH{H1`fp1^PuhHj#1r(450B!!5HUIzs delta 4534 zcmX@+d@V_w0SK5onCJVZdb?QqB=(;Dc>HJ>d&WfZ!}TXRE(SbdtZ5VEQwepw(42Hw zW_|v<*&Y{7Us!MyY?oWZ7ISVscTbRaA%h|VgNMsezeDG=*q6){^q;Xx&UoStzEm}j zVuh{83m5Et{$h8C&)#ItX2I9vKg)55idEgq1BP?^3P_7rpC-YJFv(w zGQ=EZ&o{&(19bLbv&Gt2Wf)GZ{M4VsSXO-F#^Kv;^;!!<&p*6mEId6*a#DEtn+02# zkNog%oBF3Qqn9Pmfq{`Bs%8_n0ERd)E@XS%EA(%y=glmR_MJ9k-u^tP0-F<#4sn)@ zJ*V5XbPjvWSUvBcs`wiD9g#hE#F~qCI?Sq-@-Uq9@6YC6cTLn77$Se)R;w4q6lWmW z6!HzJM{*1KrjTz)J*M|T!9q8u)Dw&$+B&74l*B>)txTem(XVc9n&fUI~wgL-a zpv1eZXWLa)|D(1_<{1QloA$;R^4R)F4_qrR9W$F={oW8BzjK!0{itEI@{|j^n(0-r` zEN9xgF}~eoZ1rBiYsSLxO)M|@7gol+o+o({ONar3d1X<)6;>IK_0Dp_eG7UgcA3Ua zUE^IJ7`UbS+Gj|OqjR6(U!t$epGotdZRIg(t-uqFuMX^5zgOh=LfeyW1zo}l;ycd0 z*#=1~wiZf4SY&{1>UQ4q_T8A!G48KQJ7@^)r$`>*?iD9R93_hZ~JOio>7v@J1H3Vibo*armydLWjyy^gkK*uWJz8rY zTOOr~M{)SG9=R~0rAKl2vz`&DFruYLarm^~ECW5(Ob6BymiYFr|moaf0Nk_4khXOM;iQ;<7DhrYuB z2bM|c3>oto6)M;o+9VkmDkT^gQYJ4HZHSz$pm38daiN*ckt;e!94z{Rb0w5c&Qf^O zXzu8+h4)00>1m^s18oks9T={&`3UqSGH*zXu*rA+kSo!~$CF{wx^yS6udl$5hT8@z zCpR=k96O-U%hQ36+?` z&eSWp`Llc>Bm1p{(*aVB(v!0ltrbj}kLVTLSk$!em7DHdmcX|!g{6blh}Lq=`GnObRz;TyI}%Bx>fQ)%kg$oP2cD9EKD7 zdJ6R!Z^a~stZEGK?%3b=wNYwUV$7MA8>!B>CS=#X_gOK0LaQU&<)6(!bAiCa*ZzBy z`o@2Udb-@NFEB~t{KctlQrR_O^-9fClO)BT#GjvO^6pG*C-+VPhz2CGvOfQ?0bykf zk#UcW-z+%Q!L$B}^XW-Bk!w6W6NMNUPIO!hc*0oICdj7}>UyC$>9EZD{CBfGE}Fiu z;3(KGw}vg|+l691ac&&;~n*&o>xc!)FfqhbRW|iwjhvXq%so4>$S^X*9A(cp#3IAM5OdgUu{Ks2h7&74^(Qfw72mjV z__mwY!qD>%FBuC@kCL1eUjAmm7Um;AyxXS!Y0T(l$#Y;}WQeNS#4Ug!4vYxdUiS+9 z8|!&9i=%y~&6u}8PpZJ?grh^8C1cO&b}gO59y3T}vJxUFdC5ug7}8m~ByEY2|l%P^dHaBtN&M$W!< z&5J)f6>ML#=Av-g?wz(-x+HVa3V<+i6{z8uUifmAHQH-6V(muY^ly8*k5)3?=|v3L2L z{@b=4iww}TJ$2F{*i8eaVJu$f2ZkcJLLT)dT5~sMG&V;Q?P%T{ErLc%TCCL*?g|B1 zeR;gR>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "7181601620235669059" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "4760130259633911968" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "634125391" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "7181601620235669059" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "4760130259633911968" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3189070339" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "8603598590297091788" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "15482970526060535234" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblendirradiance_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblendirradiance_vulkan_0.azshadervariant index 7e790aa0f1ad05e8cd022ea42dcf33fe3553b0be..450f5595a4e4ef3b5b56bd3bd12614d88840b634 100644 GIT binary patch delta 69 zcmaEqvB^`M0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AKu(0utQlP-}I+O!Hq>t3tzeE S&SeRF`$B$=J_kq>6aWCfl^DYS delta 4114 zcmdnw`6xr20SK5onCJVZdb?QqB=(;Dc>HJ>d&WfZ!}TXRE(SbdtZ5VEQwepw(42Hw zW_|v<*&Y{7Us!MyY?oWZ7ISVscTbRaA%h|VgNMsezeDG=*q6){^q;Xx&UoStzEm}j zVuh{83m5Et{$h8C&)#ItX2I9vKg)55idEgq1BP?^3P_7rpC-YJFv(w zGQ=EZ&o{&(19bLbv&Gt2Wf)GZ{M4VsSXO-F#^Kv;^;!!<&p*6mEId6*a#DEtn+02# zkNog%oBF3Qqn9Pmfq{`Bs%8_n0ERd)E@XS%EA(%y=glmR_MJ9k-u^tP0-F<#4sn)@ zJ*V5XbPjvWSUvBcs`wiD9g#hE#F~qCI?Sq-@-Uq9@6YC6cTLn77$Se)R;w4q6lWmW z6!HzJM{*1KrjTz)J*M|T!9q8u)Dw&$+B&74l*B>)txTem(XVc9n&fUI~wgL-a zpv1eZXWLa)|D(1_<{1QloA$;R^4R)F4_qrR9W$F={oW8BzjK!0{itEI@{|j^n(0-r` zEN9xgF}~eoZ1rBiYsSLxO)M|@7gol+o+o({ONar3d1X<)6;>IK_0Dp_eG7UgcA3Ua zUE^IJ7`UbS+Gj|OqjR6(U!t$epGotdZRIg(t-uqFuMX^5zgOh=LfeyW1zo}l;ycd0 z*#=1~wiZf4SY&{1>UQ4q_T8A!G48KQJ7@^)r$`>*?iD9R93_hZ~JOio>7v@J1H3Vibo*armydLWjyy^gkK*uWJz8rY zTOOr~M{)SG9=R~0rAKl2vz`&DFruYLarm>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeTexture" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_numTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_numTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "2545742961576412904" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "8492100380431804737" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "634125391" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeTexture" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeTexture" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_numTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_numTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "2545742961576412904" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "8492100380431804737" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3189070339" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeTexture" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeTexture" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_numTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_numTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "11053903591437774912" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "17944211493530795673" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn.azshader index d70f7ac139958df72e00df283daa8d18f84925d5..3f3d113787034e5dffde6c1a9e5e05f934cd4543 100644 GIT binary patch literal 28300 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 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn_null_0.azshadervariant index 7b48ea063165f03ca32e59f82c6d8a4c9e87fd69..2f2cd5cccff43f5abd9e32854ad3bbe7a994c792 100644 GIT binary patch delta 68 zcmbQH{ES(g0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-ML@J1ou^ruF_jYUlhU%Bbd RWeI%yLVk@t2S^VT004v%7!d#f literal 4502 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 KWxx59)_(!u+GNWB diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow.azshader index a817f1dd82e2c63ec92c940277897b99a530a0c4..9050f9094343d831346b79bd14a9c614d43e3c44 100644 GIT binary patch literal 28297 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 delta 672 zcmeCY%h(kl!2krz9c-OC{-3zR9BbF><$v(a&0ASHxsgd^qK-}dwAPh})_ifUR@oVN zc*X_I2${_iaz7m%;w+iU7tVEPH}tic;3)0PQk=G=RhMDqS<&Lq+U~@V7_~~z?X6yX zw?M|jz>kw(*4byduHEvRXNl;aLl2?iKE)Y{DXB%p`YD-dX{E)f={fmHi8+}$IiXq}24H%#@`3BA}Mif|SIP)cAtL;^N|>biKqXAj!b6F|CbR+aubj zYx3>Ri%-obMb2$d%kh#_X_;^W>Db*kL<$vZaRBX;zLkDCrvY*yrb#=)`fXJ2dGB9?WN`Nh_={w#XTa$eLx?-}>Em*T z;F(R#7Ha=0{Xho8oS~{iO*d#wp63k>kA3=LlLdoAu!e~<%jV*U#Vi5~WPKV#0(oyB YxkpLAfsA08{EFFvLv4BX*8f1G09()Qi~s-t diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_dx12_0.azshadervariant index 7335bfca4d3baf8a179abf2165443c62f11a8c80..89ab946fd0ff14f5939a785787350185e6a98362 100644 GIT binary patch delta 713 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 V5Owd?*t)4EQ?9#~9ee}Ze*uwOe?b5M diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_null_0.azshadervariant index 4c967f5e97480d2f8cfcb1b734960233fb410d84..2f2cd5cccff43f5abd9e32854ad3bbe7a994c792 100644 GIT binary patch delta 68 zcmbQH{ES(g0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-ML@J1ou^ruF_jYUlhU%Bbd RWeI%yLVk@t2S^VT004v%7!d#f literal 4502 zcmZQzU|?YGV4m-r>g{6blh}Lq=`GnObRz;TyI}%Bx>fQ)%kg$oP2cD9EKD7 zdJ6R!Z^a~stZEGK?%3b=wNYwUV$7MA8>!B>CS=#X_gOK0LaQU&<)6(!bAiCa*ZzBy z`o@2Udb-@NFEB~t{KctlQrR_O^-9fClO)BT#GjvO^6pG*C-+VPhz2CGvOfQ?0bykf zk#UcW-z+%Q!L$B}^XW-Bk!w6W6NMNUPIO!hc*0oICdj7}>UyC$>9EZD{CBfGE}Fiu z;3(KGw}vg|+l691ac&&;~n*&o>xc!)FfqhbRW|iwjhvXq%so4>$S^X*9A(cp#3IAM5OdgUu{Ks2h7&74^(Qfw72mjV z__mwY!qD>%FBuC@kCL1eUjAmm7Um;AyxXS!Y0T(l$#Y;}WQeNS#4Ug!4vYxdUiS+9 z8|!&9i=%y~&6u}8PpZJ?grh^8C1cO&b}gO59y3T}vJxUFdC5ug7}8m~ByEY2|l%P^dHaBtN&M$W!< z&5J)f6>ML#=Av-g?wz(-x+HVa3V<+i6{z8uUifmAHQH-6V(muY^ly8*k5)3?=|v3L2L z{@b=4iww}TJ$2F{*i8eaVJu$f2ZkcJLLT)dT5~sMG&V;Q?P%T{ErLc%TCCL*?g|B1 zeR;gRt3tzeE S&SeRF`$B$=J_kq>6aWC5;TS6b literal 6238 zcmeHLc~q3w75~Oz4T=y@geagS7(f=;(NNYn6PB=RzzH0LK?%q*;4&5$L=h+;a*_Z= zwvdJjBoGu4MXcg7NTS7>h@`YB<)ny;QCb&7>HW>jcgl&M?H~Oke}v1q^X~iI_1*X8 zd&9>t48zak*940Fecb|Li@v^p>B3s|O|t8y>zsHk9y{$9ID1>>Pt+NktdBa($hr&D zZFz&DxbVj8VE?=`#sA7SIvFeaYTtm^XRst`=e>a6mzC`IQv1`B9EwXM4D@&uwfxKH z=L!o1H)F(4XyZ>#*L`MJJ z;ZE)4ytyqSK7FOhkUgEF-)YoUBdx=@ zSxt1MMyoK?Kb=`hb^2a-_uLgr^-n8wgUTC?9S#j>i_L`@rtO!~Yft}U^i+7j={U_C z-40n{1UxAMW5&r?zF zjjVAA|3mNFu7TclpZ9Hg^!@ll`5Hz0evH00w&GVME#1D?kIb8Fk)C|wuF!OLeGkvfswW?s2z6`~41A-dI-E_(k6Pq?yBrc1ZUg zgeQf`S*~GZ-~XlYAy2dTi=6ri@3fBQ=6=0|Q=KnMLJ#Bm z(beS~>8BOxIW;m*^~)Z-B#jRnci(!qH9LJ;L(*5dTePdYX3yl{R9>#Dmr8^CWzj#+ zre-QG7QKO|S=^eOd)BSo8t;cqM>&>ASCy=Ky4L#VOHT#3Rd}r7-EDJNbx+5yyl!2a z%B}fzQqk>d!(NVlQIC&EQde>2YI#>G#tQ@Msum ziw|*`yeJJac(3ByNU4M1>mXUDZrsFhYsD%JwVS@@cB}eKF(M0>n-d(jB%fAf)FabA zJGAIP%8%imA1{*H?b_NQ*nt&&{wy*neOrWKS!kEn!4Zo%H9P(sGx~YNqdsUeiq`-P zqf7t3D-a4s1bIHA$*3x2?^H>=SQ3#IADbx-P2J`bM)(|J9Y#%Vt4p$mlHtpzKlmn- zkt*3BYNj+zY-1m9lejr{qnPHZIQMRczfm+2^pwTeTX6V z^GQv~$c#1I z-HaHD=%iC+)aC2qTDO3z#@e-r7ZYQSbu1$WvGb*hseF!nGxeB5k6sBW8(Xg#%|QZX z|Bz=P$$0f*N^C%x&}Yn%a{+y7(r8MISXRpUDyhPv}A#R}+pp&<7Ca$c^5@4|C*V>t@$#Kp4oGx{lna1%&*M$$Alu z?&OR542j|Yi0U(<5%iQ~#CVMu_87e=7HY(KKz{TeF;MRkV&Hqo26JO2hCN_06D5Xy z2%_#|{iejo4+f#m5M_*|Bm)PwPl+uf893sHQWc1S^90m;*r^OgQ@5C$Cn zSyVgDl{qo+MzTTAmn$)>4>nlOn@Wteu~1@I(`QOQOOoLW9eQa+BWRLhK(~Sz82SnM z361DC=D>56HCmI**2u2ghA`l$d#}>YmSp5d?QDk{c}`eum!PpP9(!Fj$%PZ|6vPabK+lc|{&ngfF^h_!o*WVSxY$O~K0%$}q7&!`etRP!F!Jwnf|V4jmPE2N-1B7 zXbR;a;YGRfIZ`Q)%Zud5cp@Ree!jNqnCp$zF>@b#?MPm|$XWl&>qH=*MUY{o`R8Zu zyV~9%o4t79p6cX;H}ShloSnk$b!=|){@G#6I4b|QBljJzWXy}-wxn$Az_O$+CU+t( zrP|e&Pg>f#(2xbhD1FFfvkqM}zU=%mw$68L?xF>=hCJvzMj=tJW#R2tfd-!US9_Ot z-DqppF8<_lxBg9^rL7yq<;3!3KH>)G9i|HmXrWI!Vz}>c(_eErd?`hgTr=)Co^`6- z><&i{g-GVNtxSGu_7jI)zOag-5e49vSV@caGX4R0X7;c8BOcSrVh_DM(vzlzMKCmA z{PuaLj8*LXwqE%|#QT_pq+Sb+xAnN-Q&MOY`TTZX>Ij1tBk%5gFfMusLH^_3k!3FT zUPt7ng)BOzGtucAFVdYnoAa`~Pi5?){#9WEi`ws=mdQ!z2NhM@@=Jdl>$s zSHasiljz3TJL@J$qgjlNB_AC0D%f-?WRh6We@GhM4?%KWLW<7osD)P19%0`fsJ^mA zP*Gu{c;qj>Ssq<5D57`zNt2iQkxK?O;3*9JIe4J0@5O_`7c9?6%8h8JR+Hh_fGoJ@ z#*#fl!;hpbaO!ZVUF`g3MizK_`ku1>CA8LJ9Csl2Ld3{Zn@_5YWRWC}BZ(s7hw2tv zh^w|N$a*lwJVVd#(Y;g6PY zAY(JbtZrViJ$_I(#9}cka>R|Cin<2Tiwycb-XHDZpY(D^xN~e-K?q$}66D!)PcD^J z_G0-R4of3hHQMA!J;Y=73% z{ikO}(D?^n;MoEs(L{XyIy(d1UAsrKJ;Jz~j#k!r9|$O2>^8y@IKgRDq)cilvW=o5 zq_JX3GJ_-GafC8UXPHP4z!8Y~R1lAfqa>EVXG$!crBX@;eicbcr6NfnB@kPV6-|-< zZ|*bBRU9|gvU&Gv!I>rHTSU#Ywy_XPC^03BBFLA=?ykIY)MKDyO>owRnw#}0SAUEp z$ZC`Dt6M2OE4{*ywA5bX+#D~MJ|M{Awq{#ar{Adx>l3;)Yv_0>*TOteVG!Lljwc)@ z1i61zIKX7Ai=V)n)?v06M2O{n-=7m7DB(m>1RLTqbqTgtUHq=5oehQ(i(r>p{H{;m z(r2&Rbeb0MGX#)r-+>H}ab%SAGeML)26FHf7oyrvr&h9a!mHhZ9iI)T`}Zn>d}R}Q zBf+J<=bBCdua4U~Ubug9_csLT{G_L)*R#d{@=p%wvG)E_BkrTzG=iM_uzbPlRZsRL zmcQcRP8%M>|4CC~7Wly`h`8ury*+D;M zuB2%Jz|lm34upu(k=x)*h|!#;SixY3)32jZ4i>kQ_Gu4kT675ZcwuQ3O$+!<-DHmi z^eq{Or3JJt9plIK6_aVW=kvj^9{lb4^>n$h4Y_iGFs}cL+V!$)p z*7;#zk)Z4GG|LFTwdeO0a35FZE52J)d981%x&MZ3*69oL+T4Dsu$<0M!%Su)M;?g= z>BMzEcGmsrEyTtVVBsOZAO_`LJfN4h%`~WF?~%(p6ZLEzNx4_&KFYC)v+`-NH{-zh z_LElEke<(;jq+0%Ot<9bT=Viw_uO?>{wHI2Hf&nY*5RGg zkndL6%D~bDfn^GXr74T`Re56>-Yw!;PaG7I8k7y z97(wgBSlfbfp~BP0uI!M4qC@(sftlJgOW%oRH#l`hpO7$<6{LMVFpq&DL#CvxM>|< z9~DyqeD6Js8g!)A(RFT&PAHNHID8i#2W~Gftt0B#7|{&yzSt}tU#;Wm(HM_n)e4fo z)=uG5zMLrFX(8)YAQYIU)~&uOz`!!^F9L6RAod7eNrh4_=uarX$xwh`&T3@m*0V9d z86tkHfbtg2paft=4U8AVcOsckWSUx4m5?d=G$2wU;`4pDTo99hkN&MtWSZ(!Rd3P(IlOufZ)SyEyU+Vyk8xJ`#CrZASLg5rZ;TULW z2AI&mv7Tr(2@2^X6q2D1XOXa(CiG_59RTGfaB(A2j?Q%}3QN7L8|O(We= z2%18m@00yT)6)(#&GMrw1drAHfd-mt`RONuYSm4V>Ps&g0An-&Y7b4&wCkd2S6!~? zBA93pTBAWwU9J>#wuYk_G|hTwn$?8Y&~&#))2*~YqX|%&fwSyO@9kC{Yo3+ z4{=sBmF<8^a5C*F-WS!B=b)JW8sKDr*BdlZAQA`RWPnW!nkW!+fr#pkDhiygLPVLO ziZX?Y8iFcn2vn36swgX{C_7Y9;D``ntKq1kz-b;tlmn_LaOegR<%B8*s9Y=VgLLKWo&73GU6$`>js5LFa7l7T$nWK>a;p`tQTMP))oZABFYjwc`w zn1?DV4=O4jRTPN&Lr@iYjE`_I1YXp(ccps}fC10MW3hfR`OV))>5fTY_&}gc%fnIi6bs;c&xyoDZ(O}3jp~y5vSXM%YiQbI&;;KUq6TO?e zGD}Z*!bET7d^z-1!bERnD=DpunCOj(-tV$TVWKx9hCTiCLF2VxqBlWcqBo=A)@`58QlC- z3Ik!Hw>-fI+9<HG=G11$eF|QCD5klyknCRU!XEY{yGapyrNCq;lCZn=w!Qlx+ zR3@q@aM}S8g^AuxM>{5ZGav1k=>5M#^d?8najbb8eQjs(U8mS}uSZ$BId;23=BA#z zGq`VEa_`gb(W_X~qFxo=ddV*G^V&p1KW{em5b6AAgPZNfnS!&$q4QRGoNke9w!K)v z0$(>XY)|N>3E$>?*Z!Qig-cYtoCV%Ax4BB*T?Jf?AOlI9!Qmn!6ixE+Y6ydzi%hVG z9JNr%sxEJkf5^a$CnG;Sfi6N$8la2rN+j%h1HeXqy+HxH;U6;L%$u{LL&`>-8y%6c z%lgRV-tMv9Y`M*8#t<;XU$O;ahHjVIw4HBY3T}Cn) zv1JT9c(v>dy%~aA6a>+?9K5!UP1{0{se7W=RIEJZyVX7{CHFdeM@8%Db&BB~l9#pc z?h&UINBPSx?zpgW72DrPrz4FJd9Dxuc1eZr9oC%1M(w_u;C?xA%9-waMYZW<#n5}h z4aA3g=IFC8Zf?EYf82DUHyAK(XUCtuIH={;R3o31T|I5rRJEh}ky6ux=cZ>KyL+!F z(Cb)at3;#2WHJyude-rNEdL&o%4(i#!lAD>o~iQ47+i9%?TLk~;H$@df4M#O`0A~t z>CYax{?0DFKBrcqyUyj8;odG;x#y?8s;PacfX80=B>aa5Lq@IMd))2n&bD=XwPkI z?O8Gj{2k;jpB2Ag6^)U=Z|3uk(q$+IS=GdG+{4U#-QwTIEnfd-{?rwELMM=UKWxta)`lv72OZI4g~v?G zs=aM_(uv+1QZ}6sb`?7)Sj?>D=f52^q>-txP4GDRJI)<~&9;x}4{>9ce#>~qT9)r;*s{N; zSwc!-65nL$+mgEM?mSk6O~;@Xmd;O)4K=qr->*7@{XDb8hDHqVpgnG^+-sEA+9+q9 z&+`30hP5j4PC5wuF=)9lZKcZzqeGIyVz2rI10J+0&gKtOv=AjV|J?PG)oSIQ#O&uT z;=?&P6~^46LYNZZz_ag-OrcR<-=LnhrNpUa*=Sab!Ma`F+#jDee|o)vG z0Q=O@V_1*&+m3i_I5s6Kc)#BL_F3`lUp93qrLh-y{+$xh2-+5MuWL`^m6}hG2C-{N_mM`-8K+{7qVpNy7 zNfQnCtrYt1FcDl(y!S7icK6umzLRnmZ4vip<$P7v5bXND{8b@VujGdjV>U+on6}ON z!OdB>DcYFb7vLtW3{+L&L`exnsH|>&m{I$fiG|BIPv>qrbTv;QN;k=E$+;Kaf_4Ac zeY#?g`S!I?OK4R9t7oQVTx;=q|WJ{DUy zgkCb$)cstw*@I#CUjbJPa&=f!_g__SCp60I3xj0}g{3Kr;Y=Kf4ZGM9#b%sQ9aNl& zV@LAGSq;pGU_0i;Fko{6WPjE2RK=M%2u*oCoQVT%dMI6){E!M9HWhFt4oXoOTaiwJ zwzdk)a+9G>#0h8OfYj043bmQ0HY2LuLbdt?tVi>p=rrZaa3&5kUq*j76lda4&M`r6 zC7g*v*-A?5BF@BtGjZTd91U+>%&zIvPam|4hd2`l&cwkmD}-vSt5F73v{8pMaWJ$w z{XPO`;=q|WK8EUW$wgQ}YFu)0N~2Ipll0|i9vhcjl%FIp+n1?Hbc<$qTyl}Q;gvST zAL6WN_Qshwa3+p-uc21ZgaWwaV$*~IAixeuzTozrM96epxj{wYl8a5vjx%vE&*K2j z5+Fkqmt1T*t}a7uRf9U6YoMZV$;FV=YoYPB9v6H{3XLM4-_A=NVetQ;-ms?<$faK0w1=54Q|o=I zgbbHl#3dK!KK5#SbF0||w+MH-=&47T=&ej)rneF%dMjH=X^te5%T=pJfHwN#bAJ`0 zH!iuTzVKs{oYc7FBA8qBqaHN8|NNaxE?z(Iy-APcz#ej2;5vrD2)K^n`|^hG7A0KA z5Z5up^)CPBH9&D4LtMuY*D;jWO9by;xQ-z%*9h32EL?n3iSG$!2Chnpt5V{sl%J(4 zC0K}X9Yfu9F24--cFD>;KlN2j?Mq;jKckKzP^$>Mg8vmCt=2I--YE>E!21i`?c`3u4&F{PZ~ppr5u*CX|%Bw*>7 zLJ_b#l7QueTLKo)QEN)@M#| zfd)?1W{oo9!)#^+wHf@@HyW(ZTgea&+gE~!4}%Nr41t?)k?^9Y%7kF283@X-OQ(wX zQBcqEDG4sn@G-x71nb{Vsbq+T@lUN}hz3=)yFmg8Pl<#R1>Qa)sX%Hb#g{_68xRDw zyik1Z1Q%%5>)d#<2t^VBhwsAU!0qLwb$cmYqR zGEHqpRK10ED;c8osOpgO<_X70L_!&t6G^%8q%yh7g*w}OsQEOtFEMWH&faAKfWj$& z!ht8aK(iP9l}imLxX=V7>q$^6U4~i-yv+33>o#4LkP4_)C~tW5R?={S3r#=*cV%Jj z{)yJDq_i$-CBX%niCQ0w=g=a5Btpztc}2wEL5|k|C~S$gn_DvvC`=QHLuTGPF7U zJ_0AWzzHsJf{PVulhQPQpn>MHz)linZD#V)iw3|L4S?E16Ey9(k|Fav3u?k^XoklL zE|?o$X+!)W&WdJlT*;7W#W|edf;mA4C%9m4D{y`V$-#mv88%HsfD>FWA6I$MafK6H zG#ytULJpaOHK>Hb8mK5-$&jX!;lK{W_HCnztL3}>=*4dq861_jAD&mY_PUha8ReDvf=5Tuvh4M@PXwa7;$}h zNY~8cLjgE~>=wtfc1T;gsk2?sunbT8UJiVF9|Z|c@7e0E?UM=5`&+mZZa)3@#@D2I zZB*r*%A27byG%Hru)Xu}YN5w4QogUVFFTs#+%0HqYT1AXzs_Nki{M&_f~ApjXoOe(8y>@w?gntf%`=&x|;^+^xUkVC9tAzMx!SfFzoT&tGR} zpu21LXtqZfchk|zI`0DkrI^$$0Y{nyyTf#W0nI4UCD>kd@w;eR04KQA;&*-e7RY&- zeEiCLSa*%%35N+m?q3z+s)Y)JFfKI+<}<_xV^X*O#@1U-hS_A3p;sgJ#l-+`bX(_# zfklF@$I~n${MMe|SHOK-nXfoqE2_NKH`N@Ix~OculLJ# zaL(DC8D^J;N!>RvsrzG08So(J54j0Vv4YgbCtXxUpLg86qQg<^|3(-uedSa#Bs)cCiFsWOe2Uc_H1Y1rqsr$25 zEkqmjnAH6)?JVN5fJxnG5NI;O^ zxd+eySD6tCT(z*NUxD2gklXd$=kHv#@X`1cvzG+@XDKiRE?NkTfQuI5qJ{kkBJ}s4 z`gM{NI;G9+O5&o0xM(3RT4*2BpC-5?Up6lNmhp_WEZ@(tWq(hzgp|T0zRA+JC3V@| zd8`PVjzKLfou3{XYHoMFUv&oid1i?XjTmr;s|TorW|Y_3C}*C}^8G)CwJP#XItZkL zmK)Pnx|}dNBq=QRs$VeRL960y{xC%gQBw2IT`yU!R_;m6e(oYZoRd>w%q=Q}DFIiO zvhR&dp;2Gopq{p+#HnT3XjTj^T8N7l;-ZCM+JRXlpQSjF8zZA@|eKABWN^*15$ZD6VQC!&Q@CGFxz{Ef+8T2Q&%*n}z~q diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridclassification_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridclassification_dx12_0.azshadervariant index 29125865a1f9ceafa29c328d2dba8c5e057332d4..c5d569a0a6b13a85d41b20ae87658f4c7cafddcd 100644 GIT binary patch delta 465 zcmez6_ex)!0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-MLu#RI1uabtBSg62c2SIo1 z11=Fx&a4}kZ}kq|6Zduk=l#pJ{mqO(0}hBXFt7t@8zA-p;us*#0pbTh%)raQAj3O( zpWrH02_6Q9BnDOnHf9C}mk3WECZJvckP@J{lkBdBm*>gA` zcBwO=+SLLShuI}JxmRe<=1}=nOx#`zCEOUi7BO&gEu74yB*o;;Fu6+1a&o+qwGUgO zp_xwe6`jKl7JbIK0!mp;3)rr*BvzOybYImuUBD>Kl*7yzB5B|#z#!$Dn3?AsEZkx` zLyd#k#8F}q@8RdX(j7}bA4qWCSlA#o`KywbWTdQ-&2%GktDQD0wwsvm+NtR%!B8o| mz<|%s3srV9Ddd~})F`;IsA=IVH{H1`fp1^Puh9p32Mz$e4~7E( delta 4476 zcmaE*|I1ID0SK5onCJVZdb?QqB=(;Dc>HJ>d&WfZ!}TXRE(SbdtZ5VEQwepw(42Hw zW_|v<*&Y{7Us!MyY?oWZ7ISVscTbRaA%h|VgNMsezeDG=*q6){^q;Xx&UoStzEm}j zVuh{83m5Et{$h8C&)#ItX2I9vKg)55idEgq1BP?^3P_7rpC-YJFv(w zGQ=EZ&o{&(19bLbv&Gt2Wf)GZ{M4VsSXO-F#^Kv;^;!!<&p*6mEId6*a#DEtn+02# zkNog%oBF3Qqn9Pmfq{`Bs%8_n0ERd)E@XS%EA(%y=glmR_MJ9k-u^tP0-F<#4sn)@ zJ*V5XbPjvWSUvBcs`wiD9g#hE#F~qCI?Sq-@-Uq9@6YC6cTLn77$Se)R;w4q6lWmW z6!HzJM{*1KrjTz)J*M|T!9q8u)Dw&$+B&74l*B>)txTem(XVc9n&fUI~wgL-a zpv1eZXWLa)|D(1_<{1QloA$;R^4R)F4_qrR9W$F={oW8BzjK!0{itEI@{|j^n(0-r` zEN9xgF}~eoZ1rBiYsSLxO)M|@7gol+o+o({ONar3d1X<)6;>IK_0Dp_eG7UgcA3Ua zUE^IJ7`UbS+Gj|OqjR6(U!t$epGotdZRIg(t-uqFuMX^5zgOh=LfeyW1zo}l;ycd0 z*#=1~wiZf4SY&{1>UQ4q_T8A!G48KQJ7@^)r$`>*?iD9R93_hZ~JOio>7v@J1H3Vibo*armydLWjyy^gkK*uWJz8rY zTOOr~M{)SG9=R~0rAKl2vz`&DFruYLarm8TOjff%s4$D^3N;SqEsT-t(jwV- zZV04Ea~!zTz}du*!(hhaeLa_B5AWdvwI;I;UAoh@OpPPkz*nFxw8M-C`7 z^RkMw9SED8CG2GsrD|j&zRPCECI$2D=DQ4bZ86`zQ}bYWJJ0#0XL|kg_+ROs?aj;c z3IK%_L!|@*1JtX6qC1%sOqq}972H_VwD6Ui?p&6@w=d+^=mUMoptfAR_#co40AOcb Ay#N3J diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridclassification_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridclassification_null_0.azshadervariant index 58124203ee382908b2dfc7187dc9934d7cc6e491..2f2cd5cccff43f5abd9e32854ad3bbe7a994c792 100644 GIT binary patch delta 68 zcmbQH{ES(g0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-ML@J1ou^ruF_jYUlhU%Bbd RWeI%yLVk@t2S^VT004v%7!d#f literal 4502 zcmZQzU|?YGV4m-r>g{6blh}Lq=`GnObRz;TyI}%Bx>fQ)%kg$oP2cD9EKD7 zdJ6R!Z^a~stZEGK?%3b=wNYwUV$7MA8>!B>CS=#X_gOK0LaQU&<)6(!bAiCa*ZzBy z`o@2Udb-@NFEB~t{KctlQrR_O^-9fClO)BT#GjvO^6pG*C-+VPhz2CGvOfQ?0bykf zk#UcW-z+%Q!L$B}^XW-Bk!w6W6NMNUPIO!hc*0oICdj7}>UyC$>9EZD{CBfGE}Fiu z;3(KGw}vg|+l691ac&&;~n*&o>xc!)FfqhbRW|iwjhvXq%so4>$S^X*9A(cp#3IAM5OdgUu{Ks2h7&74^(Qfw72mjV z__mwY!qD>%FBuC@kCL1eUjAmm7Um;AyxXS!Y0T(l$#Y;}WQeNS#4Ug!4vYxdUiS+9 z8|!&9i=%y~&6u}8PpZJ?grh^8C1cO&b}gO59y3T}vJxUFdC5ug7}8m~ByEY2|l%P^dHaBtN&M$W!< z&5J)f6>ML#=Av-g?wz(-x+HVa3V<+i6{z8uUifmAHQH-6V(muY^ly8*k5)3?=|v3L2L z{@b=4iww}TJ$2F{*i8eaVJu$f2ZkcJLLT)dT5~sMG&V;Q?P%T{ErLc%TCCL*?g|B1 zeR;gR>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "7181601620235669059" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "10614022793008117732" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "634125391" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "7181601620235669059" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "10614022793008117732" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3189070339" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "2959428625184507101" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "4240011884224364085" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridclassification_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridclassification_vulkan_0.azshadervariant index 3a22d2cd552ecd70656fd5f864600db591cb9123..ae1bae82209ed1df82b0e7414a9e5215558461ad 100644 GIT binary patch delta 69 zcmccQx=2l&0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AKu(0pdqA?Z~9ZC;Krh+g|FOn R=duL8eIdU_p97=`3ILAL7rX!f literal 8914 zcmeHLYh0979)3rVODIBWh$*5L<^{X}-pb{wg9xvX+-blp?GnC5Jtt4A_Ti0K!R#vi^qUk=*JMYnVZQT8^ANIp?{QWuSJpar2 z-_DtFBuSE7%3Zc37^lXLi#M$L=!Xy9pW&X<{7L1^a7}&0GoyNrjvlh2ttOz~oY@)uc=SH<#JWr z$?ywfJqq>()Vb+D-r}_~dFp(rKm3e+f7*K=4{?8OgKy&c+JMj(TD^@yakjucAIz^l z^!Ez~QsWP0c$WF@i(3c75eplGG|7FfpPn_vEZ#e2V^gbk)6nJ%T@NqS%>1NL_w~6c zjcZ>!R(0i4%nkjq)1{ZKE-yxZJvJe_=Jl4GpT4|&RgO`=^!v0^mxldnZGB_xC)>NW z*O$C~eS(A2aPZYc=bUR-b~V&w?n!vSo>;n~%_TTD_Xl@}j!)i{?Apf5<6d}v%EqeG z12)yZQT`M-oh1FjlIPYqEslPP>EM1R9F3%Z-`z6O2}hFjO{2FCb;^;Nw_jN^Pg7)T zZEgBu(vX_zC;oaWwEMc*{*^Nqd{e#K<;b6!eble6-~L%E|MXCqwITAA zXL`qt+<5EeTkU7Vf+T6yjW2?F{t}itjQk>19XaXflmExNBkA?yatGb#89Q-p(-lp{ z?j#@gL6ZkAUf)oe=eOckbNkjlCQbUN9y2-*kNV+IcyL%t(AiD;w(90lPR!s1?R#c* zz3)yh-?~MKD|dZ9+w(v|fry~@o-?=hKNa;Z+C@`|ITO1`kI-$TrYO3Dbatu+5ec6d?Cl%t(NglIdSzd z0o_+uuX>>(Jnf~rsYyw@fBjjT<3ncHU!+@xgxH&vTfW-UCG7d)e^bIs@4Q`qsK*C2 z6OK(PsOTQ(xBugB_B#4x!q@>1I^n>j6<_H_4?J5{wmd!Nkexy5Kc% zj1wJn-EV$gw$BL%)($RuIMul|_OO%CyCIA62XaT4_k7*ecT}^ZX*=#_#}m}?(mMTk zy8j0XKEC2Eo{I51A9~{GNY6Rv_O@)@ax-yaX&gUjYENxDSGgu#TeZW!Be8h!bm_lF z<y95iPPa-Yr}T)A*mizbX407Uqa}%cPj2{ZR!OM# zqr~P0-;B0%J2#B?2#P9hiyzP}Thb36^Ld+-Pe~U<)VrzK``xp>mYcs%jeNOR$%sWo z`?L!g(d$3Y%ALPpy8pW5gHdbF56C$N+z8-0i2XASi{9!IhzWDDu5iiM2p0)8Q z@gX*QW=L502#R=1I0S<--6VIZGv-d91cS*OlY-xMuyzIcK%clT$V0)X^+WSGp^fbQ^_XPKX1D29Pp6N5o+gl*Q~j(&`#&}_GX=PCQboXb3+HLiNE55Kg ze4Syinhf*uj5loN>n zPxNq4${8|Q8(`Fyq=)WeBe6ucd*bc5drwsN$#K(U8P|V#GqiXy*w57K1LB_j%Y9#E z&wd;L;vk><{_@VTXTPcW+>_5cMtRy&^SLLV_l$h@0By1^ajH8z5PJ@R(H=3%3ye01 zsdX6-F~%e07!$ET6~?)%LYH@rSeOc9jKs#OFy1F(PpB}~iCClxWBkNo zRTyI;7N^44_r&5=7<-_U6NlI{Cd!LF<59~q7M?{uZ8HvxNU>)OuWV?D5PSN+re#{5u;+(;AV~0g zVa*}<{#f%2`r8|GAc%u}?jM$SclYdD`sa@XddxlZNcjPnDKGNI^H@Lf``|D8S@dcEyy89J z8MGaQeZs0+gQNIgIZS%=C?YM1LQ}OdlB!`9YX9AmZE) zQudVT4$a3f_lNXg%v{sP5X?NEcDWylneyDz#;`kU$39ruQ>O={LKL~-3eK2lX9Q;Q zgl~MzX_GNN4nFJ4cZq|0){gHF2ltGXZwhs|XKb{^__$|mtPA&}(It$BvK)->8g`>F zPk#nd1i5?9*@%)}6pXfh}gL>}um1v5uG{3UNHh!|_g^>xgwG55qPlsv>^9SLG?mMd6- z3ey2&eW!saOCD=J6mueoIBU*c*MUS#A|CdBlEPaJTihor7~fxkr6@SxVA^9nQbEF= zI=|BuUKiAjwV458U$Fnl<2%iGXJTf&oPShgpTwGVWe#S6W`oGcg-<`OA~$m}QXS#Cx8G{8xf5g53Yu2$`$?1HVhwtQ=*_V8?tsv2t z{#dh4v}IFxBKLOesZV^HQjbEc=>vJJM-gTY)`PqSAY#ll*R<`9xftXD%77iN6G0Dy zIMjEWxCcR3PL(E93gHJ2s@Z*oog S_Cmk9;q*Reo1g6#=6?dAfp;PR diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing.azshader index 746ae357ee6493061a828bd02010fab4308b1164..66895758deb7e247b3d554cba2bc979a4ce886da 100644 GIT binary patch delta 13647 zcmaF$hUNY8lYJumMnJaH7oRxh)WAa3E(TO_dn~yTKFi+PoW3)2l z-^TxNH-ksCQP<=sQNhmCg~4m5+HA@`X&rdugrh^8CF3!(BAtYtPBLrOP7m0h?4>^W z?**;N^H|xnOBX~L+&OQ&Z!2?zUK?Yw)vYxbe?hdga;UxElD!7p$I??fA|^Ys zh&VEM96kQw{Hd$*jDg#uCT(Lo{Y-4@pGO`bOa8N-x~$wEC)xjr!#H^N8+WiV9P*Qn z1QBr_b7`;j?0Wm&~-Z(&AKzWu81aIi)H|98Q-t}`G6GTezR9;U@7JH`xESz+v8GLsPbJj#LUYn#nf3YaW_w&TePO{-uw8BqTg-(0|4%Ipc{p_)^t8iWRmVFI=$q`HS5lK6{fnn+3OfOlM#? zVPCaRjWI~J=<3}}=Z0dD!kUOE4cIeES2 zT@mvXr`Hy~P7Bwb&iMY|-8WFN#1PZ+A@0&-h2LTq>K1t?P&d$}lm+R8=XZk;7(-wI@Gx6R%(SsXvLatoX)_!?)eE7KWaGc*$6JdX(g(@bWhcwlE+0 z;oUa%Ph&j`QMo>LGCBpnkU#HX$Wa0;gNN|eiYpQEjgJ(3$Cg2@7Z)SigUN`q^-aL zlaV3jR#uzWsTb}HDuX3a(6wB0))rhv-S#V@R90E<## z_WukqAQM6C?EefW9N16UGiGy4SylhiZ$o3@e~zNlv+HB(_RVkjb?Z+@n}s9Ga@$ie zUk>J%K#FhS8^3F?%QU~&-GE)j>D%hfKzE8}F`St9e}OK&tdj$}_=M$5dpE|nn~bgA z3wX^~7`}<+CI7<8nAh_pPl79!l|}hhK!&J+$9iWu;l2gE6T3{~rmpc04BS$E?K7k_ z*SXK|FVWZK&!qX!w(^*?R=@+b{?&n9>-UNrUub*Mt)NR-L43!#H`^dlV{4%#ghd8e zS9U%NFjKxeySY8y`QpaiVWG#CPPc>v?F(*Yb1Zs*5#9Z_Z95hjU~M0>r%pNqyK%5s zmg5Ho1Gwcs>JiMi8jX?Bq{S>enn%DD%4n&DSwK)){Bi?}Um)=Ktf{bVvOsn{>(7%J zJc^U|XBim>?za$L!i;~Y9Oqb#(qxMZ0%VTY7>+KiK`e#A zSXlFgar3szbL58M>KYj{*rFPvi&q5&?ZqVKo}(h`=@W4 uj4r1EFPa+dN00WSNBhzE`_ZF$WHgV^D39PCqM2S{$|#_KcTEkjsR;n?2v8&d delta 970 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 KbxzKQ*Z%>MS)pbC diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing_null_0.azshadervariant index 39eacb4ade91770b729eb8e8dffba1dfccd063bc..0bf9ac53d74137223f9945e8c6d37f613db3440e 100644 GIT binary patch delta 68 zcmbQH{ES(g0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-ML@J1ou^ruF_jYUlhU%Bbd RWeI%yLVk@t2S^VT004v%7!d#f literal 4502 zcmZQzU|?YGV4m-r>g{6blh}Lq=`GnObRz;TyI}%Bx>fQ)%kg$oP2cD9EKD7 zdJ6R!Z^a~stZEGK?%3b=wNYwUV$7MA8>!B>CS=#X_gOK0LaQU&<)6(!bAiCa*ZzBy z`o@2Udb-@NFEB~t{KctlQrR_O^-9fClO)BT#GjvO^6pG*C-+VPhz2CGvOfQ?0bykf zk#UcW-z+%Q!L$B}^XW-Bk!w6W6NMNUPIO!hc*0oICdj7}>UyC$>9EZD{CBfGE}Fiu z;3(KGw}vg|+l691ac&&;~n*&o>xc!)FfqhbRW|iwjhvXq%so4>$S^X*9A(cp#3IAM5OdgUu{Ks2h7&74^(Qfw72mjV z__mwY!qD>%FBuC@kCL1eUjAmm7Um;AyxXS!Y0T(l$#Y;}WQeNS#4Ug!4vYxdUiS+9 z8|!&9i=%y~&6u}8PpZJ?grh^8C1cO&b}gO59y3T}vJxUFdC5ug7}8m~ByEY2|l%P^dHaBtN&M$W!< z&5J)f6>ML#=Av-g?wz(-x+HVa3V<+i6{z8uUifmAHQH-6V(muY^ly8*k5)3?=|v3L2L z{@b=4iww}TJ$2F{*i8eaVJu$f2ZkcJLLT)dT5~sMG&V;Q?P%T{ErLc%TCCL*?g|B1 zeR;gR$jtvJB7Fu0YcX@2uFmb#M#tfJDC`G{V@jYUlhU%BbdWeI%yLVk@tNVDI+55YY^ F8US;)jlci^ diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing_vulkan_0.azshadervariant index 597b239218990403ba8451b3cea5af2440bfad57..58ce16948b5ce0fd3f07daf8d1c3fe77c538efed 100644 GIT binary patch delta 56 zcmaDen`zGCN?1m%Xgb(s7|Chz@nkasFbC-ZqEla-XPmReJdPO)u H3PAt>W-$|C delta 4101 zcmdnlh#wt1Ei8uIC z)jWz7wjM8Bu=n|k-61}ElR29Ow|h)yU^ro4wNH&PNVe$e-Aw0(ZRT?h-*BI+ec}c0 z{uajYEBgXoKl0i)VM+bT*`HoH|Bg9%z2;pJ^AxAo7QRjk*PhP!{@~p=kgFMDT0X>G zdZlAGVf{XrD=T?_t*_km(-tDLbI&4w>@q(-ZQ8joWvee&iGNM!XJ*~(?2qgaJpwsi z>8tj=vz*xKHD~s9rMdO1)^)@JrI;9Esw$iMoo`LZu6^&bV)}$uN4Cp9n<1JSGxzMk zBE!fKbCf;b5Q_}Z*@w**Yh#sRII;3me-dL^@r@gYZ@blNEet*X@RG6c^eD+m;pJ}@ zY+*j~!@F(jpT>+{mOKXrMuw=GP22();=s6&?RBrvzp@j2Yyo0LZYvgxC_S_L`F52lZt5(XxaL&I!n}6LkQDb0;{C!)kUKCTD zfn-z2H>4iPE##X*z9IFP-UkH>-JDWSFotOBlzLJU3k{r74^D~nOmV1br5-&~(Ag>V zu#8B9uq7sF>#>vx*qp);6JwdJj-x<3|6}ea#;z@a0_^IZ$_+DiPRbGQ{CDElVwp_F zcq5T8R(;2hdrfssPOIIW8}oU=2_qz9>S4t!urQUq)wf=71GnIsI{%(cH={Ur`%c;l zEP#PBx3c=2_6u$++Iht1f0M>5&LfL+%)l}XCm!5e^^K9UZ(Z}^&rSu~*Q~iHoVI%> zx-BqEfaUVy7uGYd+5aD6Kavzo(|?8&4(zAw8M8U2tg3(Mx1q7{KS$B&+4V7X`{pcYg zfiAF|Y467Pc9XHydjYQ*3&S_DyyRb48S{Fcsmg;MtAvKQ9eTILDzAk?z&40F)$E39aPc*(duxtHZk>d+(Pr4O!2`h;2 zIQM27B(2z5C<$Sa0lKO4S%8`H-Pz6U@y-`F?hXq*wsg8>JtV?ja4VZ*(F9C--GAG* zW03(Gx2H}z1l>4@X`qCR#q<2Ya0J)SNdBy+mq&5JDC{;X)!=LqN zt$l2Hlqw#@;m>;H!ibh0#o^C-Mx?@smLA37&w8w7IQ`0^daNBj`jth#)T~_?Hr{Zl XWie$wqBmKgPK3kn--qBHV44B|(FN?` diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit.azshader index 0f42cd04d6971885c5d9acfd0d5665eee62d132a..44a8b1426d4484b96bbbf65c565999d23396ab2e 100644 GIT binary patch delta 13683 zcmezJhUMimPH_exVD4aSGM>8lYJumMnJaH7oRxh)WAeu!(TO^ao6j@0Fi$r!W3)2l z-zKfQl))p~sB3bRs93=AHn3!)6}oHyRLl{rGMjWOBk)|!jIAi7#P)ZTAOcMqEMZAF}8>8TwN zlLO5}q!~Pp9{+Iu)Kz)L!0l0!wy~XlCbsp@BM*>0lP6vj737egbS!XovvcL@m>|ZF zn+{b>e&{4xFBFtm8B&y(oSBy%oSd4M8eEjlP`PD_2?z74)%G#&QEBt`T>a&{IrwCy ziNS9|CPTtJgFkB-kNfw9C26xn6M62< zlB+fOY3BX<6CD==o-o$53G%6gx?X5bIxMq3|J`hli>5CuI10AQtznBfH=nyF$h(k1 z5txBpj`|%sr^UWxrl9|fRdU7?Z}6q6c@!&bJzltA@ADVCLwxoob2bZZ_n6MWaKgT7 zpBiJ3Y|+)bna&N{%;y}w;XYUU#0%d2EsWt;_659tYsd3ON_ZObI;_)DiL-@ zhM1%5`Gz1dmcwR?wI>VOi`TFG)StvyR(#{e;oELn3q#L8yksmqJxX#?c=?+JTbPgh z@NS#>r!k|KCC`C@ks+#P6Sn|{I53c8d)+JaZ>;CdEROb_He=rYJgEX3NGaEIx?M}> zu*Zzm^A4(tuaVyo*>gv%xoD@utXe4#!#V%z|7`ws*F=qhA@cWaHBp2(OqhWvQ(&q| zH>4iPE##X*z9IG4gN1HRskdY#5JR+eN1yS4-hu&aA2H_X^MDM!5X--%y~ zWilD#jYPs&^&LO%HPtmat#)^A%;yCsj3!Ss67!e6)wf=71GnIsI{%(cH={Ur`%c;l zEHZ(`|58o__I^N_BCrR3a9Pf z2{98?o-Tf2J!5hrr!f0}h8U3fAa?zKh7%6#r|cQCIi{?tf9bcOvG6}f(dpUsF?IXq zH~hNwr=!ink!88blI zz(C<`xf+0 z>@tm;y2d*&a7*>I&yd1j=RU)~L|>Obljc9$%45=60T1>1R|j^j-z#!_q3ubxf-YeN z@g3*hYy-zvjID)|5EdC=<=Xiyz)bn>?B@1(=ZhP6hlL(nI^7Zy_Aj`V&9UeKri<>s zZQHTP0GkIfd+MY^up0+X1`i{|q(^-*8W-s4b2LSb=8MrX3bWj%BwvUFyF?zJH5Il^ zF1%3B`txK4kK$y73rdq;X9*Yw?zNk%wKTbzrGB zrZqZxgFbvQI(kFTQPk1Vo6*sm(b1dHF{sgzH1N3N=y>4h*zD*CGv;_aQTYP<=#3GX zBR5(``$VIdN7vtgmja;-;P@*H?Ugp~87C>RY%cqqWdd7qV{9fuzV z_u3j*Y}~S}zsBjnf6~|L^1zJIv=|^Qu^Ans86Bg6tvecBVFO-bLf?TAq*X1WD{P=k z-RL$dh`OX}bc|+njAnFZ;fP delta 954 zcmaF)jPuJI7I6k3VD4b+)bans9p+fOUN8THZ*Jbo$rnAuCh9uWPitLyXw4VrYL%UV zhi6>SjF8zZA@|eKAr?|-lZJhitGgcupoi!}` z8!yOo82EAW%R2ik*R@-I^DGhlbLb&d+^;wzF(tJqCo@Suu_QlNKP@$}q_iltSidN- zvZTH!F*!3Y9n6L>i<49HQj3ey<3ZA>LVAf+KnVs0?CzU7aprf`i>-0;JFi|kWO@4X z2gzyw#b9m&(b(LV1Qd^fIIvhhB{MCpv^X_ACqF4MCo?CfG&eIZu_QA;4<=Jkl%JHE zUX+=Fa9eVIZf<@al4Bvdf$oI4c4KxMv$jXHQP3qMIzhZ~&)amj|7`3<$W?Y!Wz~Hf6|A*V;6|oIM?DCV21F+eGf&*gskC@O{>w1@Yw9f2d2Rf7fNC z$f<%SWjd}ne@_eoIRoxeBZ^&V$N~z;>Dhl7vv7nKFeJY)PJYkNx^+6!3{@P8ph3Eh zar%QeM%L|rPB3PgY)_75Dqt13UfAgHL|Aewvb&Y0TNX1B7sQj_Guv?Z{rjQ<%C7)v CZhQj( diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit_dx12_0.azshadervariant index 49bc94767aedae5096c5fa48da27aea383be0522..acfb2aa716cefa73d2c05ae61b45992c4d7851ab 100644 GIT binary patch delta 4661 zcmdT`dsI``n%_G)ISC;o2Zc_dgNb2~Q6+8tb6^`Aw$r7P zqvK|vH^jLe-ZS94EQ(4(?K0lHD$hjWux=~oVv_C zwP$eZ7~pVK(&(JP=}Ug8&M_+lfwF~RZ;La`ERq#dEN7J+NXo1yp2bo#g+!$bahOOP zVf3X`2bw+oR(0Gk8Jwl3dFoFUe&_3`dG?n>K5$Wp?Y1GE=^TyQ9Ur*A!YbOoph)%+}kMaR*E0Gr9F*OuR*j{CLJ{ddu7r~vZ(`u z(juK+deuGksxH_&D6P^3-)NlbG5DZoaO#j@@{K`huOXbt$~K)DCeOB=s+kn6=QtHC zq*q+kch`{VOWQnPB}70z6v_e~W;rk+IVYq(RGg zP(}F?kvcT=zwtl(HUACb8@llCUUU0=A{`hi*8i1S&=lPC!b>LJ-~Y2-{)3YpF=lpp zk9w|Co$@Ns+HJq-XB*}-=c zgv7JG2hP&rXt47clcmSN5^%)PST)|AF4FF&~tOl&YLCE!+=npR8AR+q6 zgSKgePf5{#;G+9Dx7o%0PmS;gQuKFRv`Z@-9uW?bqEdiXdbnB-cc+8<$R->i^rA0G z(K8^rPqAD}3JBpaCj5yIZ6f{eQ=%st(WpjPPV#qYMfVBelM&&li~GPO{5vLm;zG3~ zw+f(Dl-ck&x@1p`ZZw}_nnJ-0ZKMX+e+=Vp~gi#~0zfLIG?7XuE%ckeC22+YG_$qC}Jgf(aRs>Xox`fKEWkr~|%k>?Yt* zukKL_5ZA;(kdFiU$<$O#$roodij@XbTtz~@xQU(@9QLFT!1MdZ7v zhucahhv@#ude#`EH$_G8p`XQ%r9p$t?AC)(8z4uVYsaZpbb2RbnKkrR(JN46%s>ay z*g9jzRTgZaM`QJhrOGMUZ71E=HsX`!$Zl)dgTZe;j!uy)3Cn7SA^1Vor4{Gg*E6WYvG=-uRU#8(I!Be-b*c;-4@-v@0mL^_I-PlNwW(5i*s0CNG<#>- zQ^*&pgyXfR?~GQ3RoB>>>*Dy4Drf`znNeWI!rx{1(Z^Z+_kfza1f=qeOt$0eB}(2z zH~dS?+CyEZ>M(~qSXCMwd4Q)=9nCs&is#p|+ol1z%c~#kFOJIwh!R8K+v|7~^>6w} z0M^Y3I5=M?l0A!;ebVKP`g0whaZFVua!L@8SCTg|4G@OR)kDm)F{aUi<$_2vLj}LBZ1%4d)084zO7h=1tH{Z0{4?E z!6`o#%SqEPTCCp?e?+~wJn@4gIJk+xmS`UJsZ!zyxYChiN=#pzq|~yEhUIzT4XgX} z4&S+TGw;x?*6u~;TnXnBnJZsQZWCCt)ElAFTQMP(nXT|>bBOm-L9TtD&$fUJfx<^)D9T@VC zI_};W7Af_y zqzy_1VVHpcQ78u(wYDGOxnnxPU0hHdP(w@^axacbMy6s;ly>2G+V- ziG+!bA+*OdYl7L4`|39k^Q>l8@^faf+Gs&Xfcq{s9N@mKy>hvF@jQig^sLUfFCb`F zsonFt3Y$>#O$4Ly;1KsUjrB;{3yq(2r6EY#u-=&d8!9Pu^sFqvTWAXHzKkYO`vQtV zL|8AFcL|k4(_l3o?b3c|kQh0l`y-QB99Q0`Rw!3$u-bfO)pxSwS0Qk{qW+ zmt+Vw_L)~ovVw}BM4snM??p48!kyBg%~=A09w2VdGXE-Gg3ViKoE8x_?OBi9%l;{- zLZD2xU6iVOFLXI!pvcW+r<7p@hBjYZQp3r9fm%2@wXe|W%pBXrmold%r#^Gxi<4~^ zb6PkrQ9EbpX&=%*S9&3Hsq^AXq06$gEpyR}AGxhO@_Hvwn_D8gCCE$W&$f zx(52{!mQkI!4g`dBnl{BDd`-cWrLyuEHC7=-moi6fH6V91$pXOV~v6r_b`2D_gBQ2 zT)mzMZ{oynBcWUR&|<7sf-{j&N?g@z+F&SBA<%6;dP%C*IGGPIaB(a8r6%BlM1iw( zpvaFe;If$E=6kZDD)5c?*5${58Rx!d0c2jy^d?mq{{EZKV#@lPjExVoW*$Rw9}PvE Me&fZn);Adc8<#XQ`v3p{ delta 8512 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 F{{Y|ZhS2~3 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit_null_0.azshadervariant index d9d30c99f7c6609f3be3cfba81ec330469fb67fe..0bf9ac53d74137223f9945e8c6d37f613db3440e 100644 GIT binary patch delta 68 zcmbQH{ES(g0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-ML@J1ou^ruF_jYUlhU%Bbd RWeI%yLVk@t2S^VT004v%7!d#f literal 4502 zcmZQzU|?YGV4m-r>g{6blh}Lq=`GnObRz;TyI}%Bx>fQ)%kg$oP2cD9EKD7 zdJ6R!Z^a~stZEGK?%3b=wNYwUV$7MA8>!B>CS=#X_gOK0LaQU&<)6(!bAiCa*ZzBy z`o@2Udb-@NFEB~t{KctlQrR_O^-9fClO)BT#GjvO^6pG*C-+VPhz2CGvOfQ?0bykf zk#UcW-z+%Q!L$B}^XW-Bk!w6W6NMNUPIO!hc*0oICdj7}>UyC$>9EZD{CBfGE}Fiu z;3(KGw}vg|+l691ac&&;~n*&o>xc!)FfqhbRW|iwjhvXq%so4>$S^X*9A(cp#3IAM5OdgUu{Ks2h7&74^(Qfw72mjV z__mwY!qD>%FBuC@kCL1eUjAmm7Um;AyxXS!Y0T(l$#Y;}WQeNS#4Ug!4vYxdUiS+9 z8|!&9i=%y~&6u}8PpZJ?grh^8C1cO&b}gO59y3T}vJxUFdC5ug7}8m~ByEY2|l%P^dHaBtN&M$W!< z&5J)f6>ML#=Av-g?wz(-x+HVa3V<+i6{z8uUifmAHQH-6V(muY^ly8*k5)3?=|v3L2L z{@b=4iww}TJ$2F{*i8eaVJu$f2ZkcJLLT)dT5~sMG&V;Q?P%T{ErLc%TCCL*?g|B1 zeR;gR$jtvJB7Fu0YcX@2uFmb#M#tfJDC`G{V@jYUlhU%BbdWeI%yLVk@tNVDI+FDl|d F8US$*jUWI3 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit_vulkan_0.azshadervariant index e2f2a13ca3738fe19122583db01704237b19ea4a..8c66d30c9884e1870609dc5deabac1e1c0195b5e 100644 GIT binary patch literal 5404 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 h(SV%BmzPvt9Y1)pbK>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_giShadows" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_useDiffuseIbl" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_useDiffuseIbl" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "30" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_giShadows" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "29" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "268" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "268" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "3757534725879107066" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "2492931172876496388" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "634125391" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 7, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "" - }, - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputStaticSamplerDescriptor", - "typeId": "{A4D3C5AC-1624-4F78-9543-0E37DC93F491}", - "version": 1, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_bilinearSampler" - }, - { - "field": "m_samplerState", - "typeName": "SamplerState", - "typeId": "{03CF3A01-8C2B-4A65-8781-6C25CFF0475F}", - "version": 3, - "Objects": [ - { - "field": "m_anisotropyMax", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_anisotropyEnable", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_filterMin", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMag", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMip", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "0" - }, - { - "field": "m_reductionType", - "typeName": "RHI::ReductionType", - "typeId": "{4230D40D-9984-4254-B062-2DD1CE4E7042}", - "value": "0" - }, - { - "field": "m_comparisonFunc", - "typeName": "RHI::ComparisonFunc", - "typeId": "{BF11B672-B9C4-4CFF-8228-EA09C4A36C36}", - "value": "7" - }, - { - "field": "m_addressU", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressV", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressW", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_mipLodMin", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_mipLodMax", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "15.0000000" - }, - { - "field": "m_mipLodBias", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_borderColor", - "typeName": "RHI::BorderColor", - "typeId": "{8A6739E8-538D-47FC-9068-45BCA5B7E5C4}", - "value": "1" - } - ] - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_giShadows" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_useDiffuseIbl" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_useDiffuseIbl" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "30" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_giShadows" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "29" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "268" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "268" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "3757534725879107066" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "2492931172876496388" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3189070339" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 7, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "" - }, - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputStaticSamplerDescriptor", - "typeId": "{A4D3C5AC-1624-4F78-9543-0E37DC93F491}", - "version": 1, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_bilinearSampler" - }, - { - "field": "m_samplerState", - "typeName": "SamplerState", - "typeId": "{03CF3A01-8C2B-4A65-8781-6C25CFF0475F}", - "version": 3, - "Objects": [ - { - "field": "m_anisotropyMax", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_anisotropyEnable", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_filterMin", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMag", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMip", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "0" - }, - { - "field": "m_reductionType", - "typeName": "RHI::ReductionType", - "typeId": "{4230D40D-9984-4254-B062-2DD1CE4E7042}", - "value": "0" - }, - { - "field": "m_comparisonFunc", - "typeName": "RHI::ComparisonFunc", - "typeId": "{BF11B672-B9C4-4CFF-8228-EA09C4A36C36}", - "value": "7" - }, - { - "field": "m_addressU", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressV", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressW", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_mipLodMin", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_mipLodMax", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "15.0000000" - }, - { - "field": "m_mipLodBias", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_borderColor", - "typeName": "RHI::BorderColor", - "typeId": "{8A6739E8-538D-47FC-9068-45BCA5B7E5C4}", - "value": "1" - } - ] - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_giShadows" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_useDiffuseIbl" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_useDiffuseIbl" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "30" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_giShadows" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "29" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "52" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "56" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "184" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "268" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "268" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "1426176521634445605" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "1425135468820160161" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss.azshader index 77a0f94f97ef16c456dbd0c1838c5b664280de7c..fad06893e96dbaaf81d581f58b9d3081c49ff33a 100644 GIT binary patch delta 13723 zcmaF&hUM`yPH_exVD4aSGM>8lYJumMnJaH7oRxh)W3r&A=tLds%_kXKn5XNQFY5xSD%hF2FnH}$n@!m#tpjhIaCC^XWISe8q?54INoLL3=>hwbz0@Z& zUeq!=m~mke1A|BDf+&MK=Z*JmWscBmV@$TXwdUe4h^|%+wfCFS-Ge55TM_42dTK|+ zghk7nc^K7L_FyWhUm8=)0%p7VA5fUyC$>9EZD{CBfGE}Fiu;3(KGw}vg|+>Jpyup{M=25J$^?2cez0Y6l4)NKW%-Jls-D5ff z!wLJUeQJzBvPD<#W;!=)GoN$#hWlLY6EAr8w=jlZ*%$Eok=MQnOH@zJ{`AWEcg)G_ zHSda;r#QW~@O4_a_H@Sg2k*Xt$|Z)FmJe~4CU4XiW7)Z9kw1uG@#E8`oeNX8`f`={ z*K~en*3HiT$PQ5}kmHrUYTrA{iLG99W?xsDyJ}rWEKr7tA*QObsef{#vKUKa=AIps zFLH~q9A(cp1dALtTdX~~P+YA3#L7?oNsML1H*Orh?WVOb^!&q1#=_I1BqxQJzge(_ z`N$9NwyA#_GkRI_92giGqG~pA3t)%?!$`K*y+Z%Sdfv?9Xy0iw=IzguDzJeRbUmlr zwR8@9%ve3|psM&9`5loxcf^{Db~?+>XF<+zA5AzQja}Y=;oAqU%WQQ}@nv}8{ExYx7`wIv3b3ntDmTp7IVnfH^WTYIi)Aty zJJt24p;tS^uBmgai92d&X>zDXZ#V`fX?|{LfKzdUkzG-M;w^zi$2M zXtQu+S#EnO=F7qS5=db#eB*ZwcA4h)x*M>|IDK2a8H=0Q>w)#ry#EVy2g-hVke5za z&a`)9e7nim>b-#1jD_KwSYGlktc-a*Px2(VB3fCLZv~7=Q3H?l&T_(i3wkGZnZ`|B z;~f~drTW@uNa3$@pW$DkugjlF^Pg?yF=?%U2YUUh1H0Dm6*<1p_M}@um#~8Pj&pCe zfuk$N)ZBRi_6 z|M-uN?0^TEM%c(s1C~LMp*;LH^hb5-53Ii&n1B3TASmAsz@UyH@~F<}pbo4rIXb9= zb*zhEzm{4cTGuu4@NofTqO&Y1z%_01d2LJUT!#IzR(jb4Axt5u}waqpNP9 z%ijo&ico7v5OtZ?=&GC1RX3xnZbnxRjjn=1UNts4&@?*GG&;~klT|mSjF8zZA@|eKAr?|-lZJhitGgcupoi!}` z8!yOo82EAW%R2ik*R@-I^DGhlbLb&d+^;wzF(tJqCo@Suu_QlNKP@$}q_iltSidN- zvZTH!F*!3Y9n6L>i<49HQj3ey<3ZA>LVAf+KnVs0?CzU7aprf`i>-0;JFi|kWO@4X z2gzyw#b9m&(b(LV1Qd^fIIvhhB{MCpv^X_ACqF4MCo?CfG&eIZu_QA;4<=Jkl%JHE zUX+=Fa9eVIZf<@al4Bvdf$oI4c4KNAv$jXHQP3qMIzhZ~&)ajB-7_}xhu&}di*Z<)*{i80U=;ZCO*+T5{la2+>Zg#F* z9TUX(anqrSh{+GRM5d`TIc{R}SJ+%#&&ZBL%{FzW_l%PtyknibgI#2Ebmvh^4wp?U z+`r46*)>_?@O{>w1@YwGS!!b4wd zdi7t%5WFtm%(%6OX|5^`HNfCMYb_93oRYHW$;73|ZZ#sxnUh~K+i>{(dvBf()C&NN CW_ug} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_dx12_0.azshadervariant index c144350c7ff1c7da6a32247b50d0e80f1d29ce31..1c0894bd23c1b76723edb4ad0e6643216673cfcc 100644 GIT binary patch delta 1259 zcmZvcdrVVz6vuzR-uB*0q3x|y9zvgDt>UA#P=z|Z7YO0yR*6|qmQjYQh#&DSkz^IXL?zxSH#5q~WQQD3BYfU2sKhYI7xUN&s}aZ*hV<#UZCWSgyDe5ZRoH zS-&FWRNQA27oEvDe#Lko`68ouO2-A&%1TBNEKj}?kWZAyh5X53f3l5HOiagb^C#bd z^5TGed|Lh-2u4Txmi4+XwER4DV6t7UN!fY4v$ewl&g31{6nLK>>Cn#HcSO+wSHMc! zG_E?U$L{qs+Oe%?1lx4PexIkQ%TwQl6-Tglb)Gt(XKxp=K~FU7^Vofa31FFXn0^kE zQMRi8(U)?}OTkwrT@87}KCh?D=h^S@)YH(aH6#!Xq^HqKto60k4--xOM5B(#Pzg|; zNxq%u&-h`j_yHw;te5OoMW3dlZ#yJUERx?X;(A)R-y(UWm)x_9A6dk+0KXRzKZy`J za7?>Nx}>Q2nsesY6|(F>_pId*o!4*Al#Kt9@!wIT-3~J3FnAXO0ee7x5Q-V0tUxNO zq^Aj)k5;24No-I6Lu4h%)dy8C4PXmV*BJFFdmyx?+Ftt)|i_PlPE2Zzu=YD;=xVY4%* zbWu2rYXY&o*Xi*2*Jdx26j9p(@s+-|vxiO`uF)^ppngBiXChzyq=*t1dsW}CZ?33= zFbhqtybDjVXIK5nr!E;k-1J-Nf^eB(Kzt4*s@RZmL?A5iC*%TQA0_NXD8tqg%lF;T ztD+1H7>sHK79<=y-W{D(xX0YHD0NS2Pq%r#YW`@_i&6!y@!_zE9Anj6y|xm3hf_=D z(uS^=5t>4y@$;V4)OvQ8(8ZD0`Eb%i7Jj8p?Az(XD^8fm%jrxB-t9y_)iQqJr=l_R zy~@bDc@o{oG%Xs{;1&86BfM&I)QUM_xdrEI$-Q$mR2*7vUPX-It}54dBPugj!63S5 zHp3JaU*E$wAHl2j)inPysNVJTM_SY_>WCydq%I6FdW$P_j!aM3M7pQjeWGFOM^3V} zMpO~O?KIT4C-G32F3P_w4+n;z)Q$~(!341l2_{wRZg48SsF5N@@SKQf_!M3s`NKNp zAWy-mtCok1A|{D~${4Qyp5(c;bmS+Z`NaawsE%2zXweH>B5C8Nb@_?gx5QMe(*SIy y=k0_JYpF}_Zbc`VXRsU%W;Lm5)1T?=Q@ySJ`?)JW=5Ky@S2?(v{O2?HH~bAX0>x_p delta 5145 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 WkrzJbuq~fXB^qyjf7gr+#QQ(GrCIF& diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_null_0.azshadervariant index c369381fe9853815ffeb37621f99d47ef5cc76b0..0bf9ac53d74137223f9945e8c6d37f613db3440e 100644 GIT binary patch delta 68 zcmbQH{ES(g0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-ML@J1ou^ruF_jYUlhU%Bbd RWeI%yLVk@t2S^VT004v%7!d#f literal 4502 zcmZQzU|?YGV4m-r>g{6blh}Lq=`GnObRz;TyI}%Bx>fQ)%kg$oP2cD9EKD7 zdJ6R!Z^a~stZEGK?%3b=wNYwUV$7MA8>!B>CS=#X_gOK0LaQU&<)6(!bAiCa*ZzBy z`o@2Udb-@NFEB~t{KctlQrR_O^-9fClO)BT#GjvO^6pG*C-+VPhz2CGvOfQ?0bykf zk#UcW-z+%Q!L$B}^XW-Bk!w6W6NMNUPIO!hc*0oICdj7}>UyC$>9EZD{CBfGE}Fiu z;3(KGw}vg|+l691ac&&;~n*&o>xc!)FfqhbRW|iwjhvXq%so4>$S^X*9A(cp#3IAM5OdgUu{Ks2h7&74^(Qfw72mjV z__mwY!qD>%FBuC@kCL1eUjAmm7Um;AyxXS!Y0T(l$#Y;}WQeNS#4Ug!4vYxdUiS+9 z8|!&9i=%y~&6u}8PpZJ?grh^8C1cO&b}gO59y3T}vJxUFdC5ug7}8m~ByEY2|l%P^dHaBtN&M$W!< z&5J)f6>ML#=Av-g?wz(-x+HVa3V<+i6{z8uUifmAHQH-6V(muY^ly8*k5)3?=|v3L2L z{@b=4iww}TJ$2F{*i8eaVJu$f2ZkcJLLT)dT5~sMG&V;Q?P%T{ErLc%TCCL*?g|B1 zeR;gR$jtvJB7Fu0YcX@2uFmb#M#tfJDC`G{V@jYUlhU%BbdWeI%yLVk@tNVDI+_vZOP F8US*zjfMaK diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_vulkan_0.azshadervariant index 13fd579d9bfaf41b12acbe49ce39986951c13cbf..cf8bbbd82494b697e9f0edb4559340b081dc6260 100644 GIT binary patch delta 54 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 K?zN$))_(vS`n}x% diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrelocation.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrelocation.azshader index d827fbe2a181de9df1ebc19f0eec3720dc8f81d1..b46a476221c29ba5256e057f090f56385e2ca546 100644 GIT binary patch literal 91763 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 VrJTfGR>A#6$>pDL>A(5<`VU18aQ*-Q delta 5951 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 VfFH)pTIUf#_hatbS+Bf5{tc7MOlbfB diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrelocation_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrelocation_null_0.azshadervariant index c301dc47904b0ef3153d55cbf01d1895204c4000..2f2cd5cccff43f5abd9e32854ad3bbe7a994c792 100644 GIT binary patch delta 68 zcmbQH{ES(g0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AD-ML@J1ou^ruF_jYUlhU%Bbd RWeI%yLVk@t2S^VT004v%7!d#f literal 4502 zcmZQzU|?YGV4m-r>g{6blh}Lq=`GnObRz;TyI}%Bx>fQ)%kg$oP2cD9EKD7 zdJ6R!Z^a~stZEGK?%3b=wNYwUV$7MA8>!B>CS=#X_gOK0LaQU&<)6(!bAiCa*ZzBy z`o@2Udb-@NFEB~t{KctlQrR_O^-9fClO)BT#GjvO^6pG*C-+VPhz2CGvOfQ?0bykf zk#UcW-z+%Q!L$B}^XW-Bk!w6W6NMNUPIO!hc*0oICdj7}>UyC$>9EZD{CBfGE}Fiu z;3(KGw}vg|+l691ac&&;~n*&o>xc!)FfqhbRW|iwjhvXq%so4>$S^X*9A(cp#3IAM5OdgUu{Ks2h7&74^(Qfw72mjV z__mwY!qD>%FBuC@kCL1eUjAmm7Um;AyxXS!Y0T(l$#Y;}WQeNS#4Ug!4vYxdUiS+9 z8|!&9i=%y~&6u}8PpZJ?grh^8C1cO&b}gO59y3T}vJxUFdC5ug7}8m~ByEY2|l%P^dHaBtN&M$W!< z&5J)f6>ML#=Av-g?wz(-x+HVa3V<+i6{z8uUifmAHQH-6V(muY^ly8*k5)3?=|v3L2L z{@b=4iww}TJ$2F{*i8eaVJu$f2ZkcJLLT)dT5~sMG&V;Q?P%T{ErLc%TCCL*?g|B1 zeR;gR>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRelocation" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistanceScale" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "88" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "100" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "196" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "200" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "29" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistanceScale" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "88" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "88" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "100" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "100" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "196" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "196" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "200" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "200" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "2384728166189927163" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "5860410517747741014" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "634125391" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRelocation" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRelocation" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistanceScale" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "88" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "100" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "196" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "200" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "29" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistanceScale" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "88" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "88" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "100" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "100" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "196" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "196" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "200" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "200" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "2384728166189927163" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "5860410517747741014" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3189070339" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRelocation" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRayTrace" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeRelocation" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistanceScale" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "88" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "100" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "196" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "200" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "29" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistanceScale" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "44" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "68" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "72" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "84" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "88" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "88" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "100" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "100" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "180" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "192" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "196" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "196" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "200" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "200" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "224" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "208" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "11065231018315524923" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "7371039707078468748" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrelocation_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrelocation_vulkan_0.azshadervariant index 2a077e0bbf7bafe71fa27bcbe10130b0e105f20e..f74f35eb999fb6764f0c99aef16f381fe6f1c730 100644 GIT binary patch delta 69 zcmZq5xa1+u00hh(jDh=Zh??DS$hkFDy6;w#%(yi#a!+yC=xIkU^1w!NcXK-=T9_>`P_}`p;M;XFTx+U#gl% zvBK8lg$wpRf3Z8nXKylRv*31*=?n}f?5p;vF$T#NUA>#>+_24j&fy#GbG1*r;N9QC z7=C46!0Sg|`z9=@KRNr;E9c)aC$HDMD`KAF^xDGLY2n(_8Q&kg`v!6~LrlwuxJ$2e z>?W+==W=Bw@2~ZhyMEe2WOnXZHN&Bo1OiU9im4d$18o+ zzIT=rTfOGYzOFR4e$~2;SfCUWLrhg=Q@``A3E8#peO64L(CWx``DZgkQ)A|y9av-- z8DfsI=Nn>?0XqAz*m@IVrsS&4Mk= zM}By>P5slD(aVzOz`)25RkMj(07D!Y7qY$X75X>U^JW%D`%arNZ-1Utfz1g=hd4{d zp407GI)^=Gte$sJReX*7j>w)nV$DT69cI-^c^J<5_h<93yC!N343WQYtJRBQiZhUG z3i*cABe{iqQ^+@@9@G1vV4<5+>IudWZJkn2N@AgbQ|iGfk)A0IHLcX6X9_wyr5=_M zX%M!=1Z_Q*G69=Y7-C{9v(<4FXy<>-{lwU{B~XA}-BYRTvO-Yv*~6O=WgFgTY&{I zQ07)vpVNN9ZACke`226uc*S{SagG^ShT+76d#k=Na`vrjUi{gqVEdXi7lqSy??kr+ zW(lxdUi`v(1~&WuL+nSAf@%8CaKeH8ls#iM$COp|Fa0(&7XIfbIz78Srf%Q-hF`b- zbhKGGvMjef74zj_ehH+)5Wexd2D?o2d)*DlGW7^ePTy8<#^Om}#dTud{{^}OXg|;e zmNV_$7~gI(wt6q%HDh7;CYG1{3oBz@&yzffCB%Tiys{|Y3agCAdS^M|z6HG#yG-Mz zuJNu94BS$E?K7mt(Yep?FVWZK&!qX!w(^*?R^W-oR|j^j-z#!_q3ubxf-YeN@g3*h zY=fi~TMH#2EHXehbv_F)Q@%U9xjo+b;>O)!p~sd^x2%Um*b8oDb1a&GNw52F+jcB6 zK;!n*Nr#{t2Qdwlkg<549~h3{`WeZe_4M*64u96e!;Qus#o^C-cq5BiF^a>ZIQ&@; zPde0!Q5+t{;ZKD9z_dnM(k0EKIQ&@;&j}D2%wahiUES81QHWKu+*RkA`8~! ziNS&hr8_Mc1rs1rAgo0&z${3&)U1`Qb~+ZtqCkgQq|g^rD3+uuEux*58HP9azMOZ? zx#ymn{PLIPqq&fdAppNnx!@tE!iqko|M#aVWfuQ2ysJlIf<}phf)0THgJo> z^7>1ay#QgSV;)4p>K&z)hn*{YU6|0Zi71nLdhEi3?Jlf!yBoYr1n2l6EinPBp?k$P z(2xdtZAuww{f!wxq($4O!UJs99y|Dt20&K_vAo?lQGZD(im&Si z8i^9M-|*1AXQ%ejwVj90!O488pPUd1o2}B%1JCJa3LAFTlg*|k!_mc1*=z zj-u6PlC3u<*$`I^%h3vsmZx&D!mxzn`28^C3nkorWP>I^Fy2RVfGkU}kd9`;%U3&? z>Dqx>MtwyVx6Wv*@bTrZ8%OO|yIStxF6CKv@s#UVgBL%!P@}HVZvC09D5@xnD5{ZVof5a^2TnJ zb>=Ru{>HnDM~@T`{3$B{K>CijcN65VVGZpr)bx{g8lSdppLW}zKRl%uTvTP|#Fgn# ztqE+4x+{Cjn!g=r3=eFM(aO>j6ZnsNQu9v@-JkXQM+uJ|8r4voo=5rBO7!LHAsH@?HEH#B_^EWdDlI3jE)kF5*RP7cmEI*PJQ zNEk*d?$xCS?5UCr;knrXCB@fPo~}Bd`xZO{0_6Sahu(vTC>-h_t%-jj8#F+}gKcPr zgM3iE)um!BL}40oDo5Un22u`m69?l9 z)RR15qofSs65ToDa1Koi{L<`Y)yrt?ok1syN?VeQn6E3=GQaDH&AL`X(b>{Vs|*F^ z7bEj;;Idc^9`CF}R_3#rWQv!oWU zq$fPh6@W~}C#;rtuk}3-Pmh3kwM1R?YJaQDq6Qw_@aUv;yuySAMmZYn(6IL$Zr)() z+-2Q=nmk%2b%cmN;DSxBAFI}@S)wO65S%akA4#h*h*ziRrq|y-=GCHC&uX|FICW^v zU9HO%bQgFA1s@wX|6er*Y8^YDRWa(t6bl5s`f-g7zu1KPX~n>%BDk^Yqo)9}+`jyp zGX+RJ(4FpJ0_H>&=gzj8gL|hitgd1X`GDk1=J@rA+#FX=^^Z1plE1&iNLF~DFME`s zd?xF@ZH@97ud%ZtC0?UBu-m0mWwwj;d~D^yKbp- zcG^tZId}j4Np-WqmGaFUTbOzJ7KRtQ@72Q(g-^Q8t}9n4nSqbjqqjp`ton_tM822PJeEFbCQVN~^7l3h3gfSP!WvYN&iwJRFVG#F3vSEPx zN`bg1oL5xJ9em7NwWj*R$Jcnv`x=7b5DbT4IOV(v!Elc`)Qe?bv(OiU;eO%aPh($- z&!m4kvPCc)g5eMhhtNa>iq0@(gzX}v{V@(gelVEx`^vNJ4b>P9&g-9m;cOfwSQ7l( z9N{l0jf472B;pSo!JBH+`ndlZ@oPw+9h9_+q_{9^q9`uR`wSqH#=nVg62WmR-BK_A z78}emFF4198U2|GPW1cSE_1;}bQW{eXQ?Ul1WM9ua(5SmYQi+c?T0{h%|9%tTi}qa zlnLs76Ow|>7^*?Xu^92T0x;g`S8*MVAMOB#t5~cT3H9b(ewgXMWdXv-S<+ltBL4yby zTr_zqqR>MWdJCu!L=<|6LJ!ePBC=0qVpv4IifD-e@&fG*RcLUP?Xz=1_iB=+4s)zsub2P9H#cwPoi8{vh(^^*^TJy!ZT4iV8 z;Tab+BV;y9$o+J5h_hrWUpUvH-O$%&f}^xEOL5wg2w$#eALs6iI6ccbHR+p{w=a)l zRu#x}82EAW%R2ik*R@-I^DGhlbLb&dT)sFXF(tJqCo@UEEHkydxF|gyO6w(7)dRT< z4A?EKf3Iqz&u$T*JI$?`x%Jeo&8=R1w_uimXdD*0K`boRPsvP6D=kh<&&f|p%*o8j zDb3ByODxIE&x6Sn6xHV^rKT5UrWB>-0o@p1kXT#{bP>>Dc-+;9?yh%U_rDO~E)Oj3 zGR5UERCnbkWu+#Uz+JX6x`SEUBig8I^6k!xPt7Mq&TUZ3@sd<&nQ#IWb*wVqKL$64 zI+t|5U&~*y!*=TQdP7Dn?t>W@CNVI0Y}fzcHkq-rL6A*;(y_qV&CZppV}ckzZaP%4 z-C#T8N#^PQw=+sj`@+PrIiJ(af#a5|XnD+SnG@3|x-%`DzW+R<*mi+GjJjNy+PASY z8DSBg4m4GJ@&q59=>`srqT4?-FdCR{&zE9MV&S;4@Kxrotf`XQZ^|+9GqV0Hh%dh| z-M*7qN#B8ifdx58=liC5yIA@p_MZKC{Ad_^213rm#=qsk^bIjg_2LY;eQ(GD^|t7A z>urqLn2x8n-vzlAJbPv+e5@Jd6C{rVc~ted7WY2UC}u>oi%ySx#1x9@e^4yF+`cBB z=>ZdR0yr%-eL@|R-sJZyq9BY9Dv8^HA|Waqk5hl{+F5<}?Dj-;<|kO<9he+mF;4$r z&CI%e?@}ffw(WndnC+Rc+l-Vx3hbCCSqePt4)grFqT@( ztsqFTq78!xRBaL{0)hfkFDi1QQi@)rXsy+1+jpG+YVYlP-|vr)pFlY0?7i1sd+oK> zUeB>PSEph@K-MMCR zs*#)jvEVg~Nck~~@?4|mAUZKG!f-DCkNs2=hMCyhk6^=Z zS6V4GYw%{q#H_#ybjc(6g>d&Ew8`jw%fSkZ4vAH_#3Bi8sg_ub+_!pz(p3nt6~4<$ zZNp36nA*5-JpV9=VcCXD@PfR3d4($r=MZ&4vgDrUS_zg5h>w(%=aH0WDAIkV!TmnU z4_t#Em9A`|*=MKVW>$4R@oi79IZLb{sue8e>PflYZ{Ncl-axv!+mOpi?(r&30zD8Irym6ojc=D9aC zd>{R4wy{nYifIgb6IOf6_lLT9=&lUi`^g%;=+M0xT)kaW7~}DDd3Bx<>(9mb{RR0a zF;@H5<{5b$&}x;7>S;&j4~+^Y$p5s>{w}2Br;iTWtuR#i^&0yvB?hB{_`&uS z7+4IH?rnauyg$uUZkJ|6-&L;nGnMiLg~91zM01bZp>mFm2`q+eEXIUZ!&xTXXzTF`tI-OJ(JbS&LX($Dt8Ssi_T}BT%xbcqP)q{SE49yxCYM!R_Y2%jl{D1zUjD)wWh)%GP0zL+##`43$4af`pFd* zQxdDkJgaUVCA7kOPLjl6LThy+Jgb*Vi=q2qcveFw^0?9ferl8kg;d|`!MKM?%6+!M z&l+64h$Qc~aME?a_dG9zEMx5TBJJ8Iem4exQR~a)48MI1Q}3_3aQv&jdq{Sup`N@m6?;` zoy(ZULXb32helxIF(0R`7i~>UNQuu(*_<9FOcSLh25sJ!F3zN72a-8-LYQDK8b&z# zFv*H z>FSb8?Ppvk?iQPDyOT!CZcSIuP~MakGhg?*SsFEOF{*S?$d%I$wzv_YKpt-JPf&|c?Tli5~x|NLnDEjt(2~&e!kV+*t4^i8{!>J1Q>$j~-$WWbmvcHymfD+;0ntI+bf0-L7Bpq{T zP`Aziv?k`NeT`K=e*eq~(^ z3Hha?czbThhQra@wbsgs=J@a&ZV51l#-Zn-kF$7mFu2nA-7;rdIH`fKz2T$l;3Kx8T&5qQ!&s9FaF0Fl|j4h zK=f@OUlOJgl<5J^h2I8N?c)FkZ-+m5JgsJExCKt zY~9f9VVs@V(4bZyzeWgdLyYw$}6^EvMW zKJ{gm75Jsysrcb|nc&jZTr@@O`H~4eEiq*+(fj4dSja_H=qScZ$t34B?&-=YI{kfb z8r$eMWhWwa=v~uw$L^Y0-oe?`8T6RILmc`(7eN{#_5Cc_s~Q7Q^T933g9Nqpa2r-- zfH=R2tGQW=U`%l;{WG@xN4m3zhd(tcZpj_GYC-MwBI zDIRoe@#A+q_}%$u z8|%MuY-#wq$=$cb=R&EV+T5Ln#KO;ExoBhIDfyFKaE4?o`nPDs4WO@FgAaspgX7!6#| zd^8wDA|jbqFs&=X{lYnl$j0G0yo5zi5N@$x5sESI=6bQ7?RU<-VdjVHSB*{eeqX-5 zR_%SUb^1^6NwBd;BiO#kFo&V0Fx|t{9mSZ8m6^UH);+{>xg8!Z!swA z9~Ro44>4lQtX7o9-ll(ar)(Xa5p~DR{2sP~4MV7%)|>^^QQse;Y~5e_{u28BSXYMh z{oaO&7m6~rr6#_wFP%A{uUbI^=!@IqB%ZZS=ksp)`S0{4jjU4R?9R;Ti3aD~{BDb? zF4z5V;&O|}=@S)@`+VQh4|&gr;AfhpKM?8dXvRC6toLak1lAE5c?ql8AKxyVA247i z@MI-QS(_fPwgk@GacbTk9j8;`l}Q4mi`Wb`}m7_7vn?INX)P%jtsO z{fD~{A1qRl!58d;EG{uUJ|#6mC|Z@cGk){ttqH3(2W^gDDNIP&2A(fCmhB0iulye` zbXSjYj&$5I#%*}ciT2St_az_Z`n-6-S`vK$f{bne;#|bwKjSyYui6|Hzcn#2eWegW z4aAsO_9Dc8M&>PU&R^Pc{2Eqh{6ezg?rJlu;k&UXVq>C888`19>%rNrFztZ{A-DZ7 zSMOKO>Upbg8RuSozMa*e3LVl7LL51`{0vcIV#0?aTDBC?{WpT2bZ|oDX~^cz*NXG= z$DdqJlNGg-LJ-$FeCJB{lxAe?@o0CgdgyU??#LZY_wbl{d|+f4@_wFqiSs=UFsxV9=dj!PYtiIPVULM zpsG8Z#x&Zax-Jk)QE%FCD$P-X)X|=ity<5)|NhLKfyE?nsGm*gy*BcsVOMJQ5_Fuh z+i^nUKN4kv;vSsZ;19uiev(u~WP0#Ib&E=vHR@2Bt%@eTy(f@#pRDKchwc8(b>q6fY3{w zFGG$5$G>PF?Cuz!c06izdwb~sqKIB?vY?y{@tdiO+D?n zr1IS~=YT^??e22z7s)ExbM5NQj`y2=@zhLljOp9TeHekH=dh~z`bmgu*m8E0oOrEF z<|LOLf|hp$_KC70G`(EMMhs!9uHLT2yWX)`QRjWJ0kVD0kQp=*X$RRvY=f4w={Gb? zk=@pTxMKabUByLzA0)}D=aiUdp`8@kX0r{P)w10g&KZ@^Fimy=J=@T;>XKipXG?uc zqZmogICKjbuu$8Q5lG4iaIOrLJC_CRj<g^(}r*-YxZh zjXoSWpLqHVSt1?C5Vb5lBq!M|MGgzjTN%6UmSzM55I1ciK}XwUkc(uaucDSsM%21= z^`7UapBKA?Epy9vaqUT~t?f*kC~)b0GT~5r&J}EVSic%<8P~2E9ck}A{`k%zI1qLY zsE0ecYr3bphu}CGHX<+qCAw-Q`?8gDs?o2NeX-8-E6+=wO^8Z-NWHL}x`w{xjb)Xi^D)Oo(uF(D95 zV&o@mW8Z?nEr3|fioR7mmSq3ySjYwwPIO2y60zZk!gGid%8HsPFZ@As3pDD^&Vk|U zEPRd&Y|bH7f*u4ld@S88ru1$MIIjvzzL<}sv4WjEPLhnXv5k|C@!1;Wvt8!1tIg*# zjQ^=1|1T^3&tU=@q5^2y(QJZSRP_4UjGR$8+D2Zbw1mTszS?Z`I#xAjnG`>GbCuDD z1M-_V`&VqtoSiVFK*q&g_Tq6r6Jm3D|2F}bU$M6%@F8i7ViC|bMLOKeI*LQv1HQ4a#FLhV0cRZ-Wr1!c?Vx~ z8vOq9;O}b;P4*R;)DQ=5|now=zf4!Psi@f*3QJsh&^Rn-mb{W+0wL5hXmrRss< z+G-a5LpMIvDRziTr)57j;o#}?)HURhEhm4Kocz`7!PTACuWnO&ZeT0wa|nSRBnGzU zGmZ;xvU&L%s7e%_yN4DdOHc%fZ3gxsNtJFx?u-NWP6Sl%4Z z1*YG4wzNR5>xk~pCg1qZEg#uk;etV%wv1yzBs*vMrd@W<@nuH#iJeoiqupa8k4K@R zQ;m&?nhT9v7c|#1eJ)O$_Qe)QomW-MEs;(ko3^ia1dFeCRQ-l@=9p0_zot#t%F2wU zmYaGmI9i7|AQ;_Ig>NX&;G*ThoZ`iyyr@tpOlrTrDUYUFeU$q2;|HJT{viJO22$}= zK;;*y0K4e?wE|oM*Jmrhb`5BsUvzc8P`TGD|HvJEfChgZ-;P(;rP zE~&fRqFeU)Av)SY7RYQsq0xqU$I<0mYvY(-{AiPoLuB}bjzX=KZ`tB6-{H>`?=UQ3 zQm^3>gywN(76K_3_dQl3;4m?RF4w4NM)s0BT$B>ar*5g=<dvpwPfNE?o4OtjA2Nv8>vSKg!Mk18NYWe3M71ZXZg%=jXA{9B8 z?LI4KIKvY0w;^pIb3fEsJ+2<_uEu_7X$Xtv>EqwBpyr}CgbqiQc|&VJD_T59P3Cs3 zSb?3(?T1xBq3m!3lvKb>YcG#cFTk4yD`e?QnX~xGxVKm0C$avrC!SN`j1C$|cX-IL@moR3!(Z@>zIQvYMICqKez{ zRA?B)J5}&OGP{(Dsw4!mOWF8JLc8FA{YgU%7R6)ld{CZIC1^*Xxm2>1-;{-;LMb^g z|H!8yWGV`)(wvd8lWS*h2T)}lM3?09_u2R;x+~p-i=tv>OALCl`gKV3@qD@k z3NPh}Z|ZHBy8Ty~W<@%s#3fAW{ryA&Evi%w`7Eq5SxU`kk=4mM9y2|*5w~k_r~Yj! zQS)YniK{SRy%omfjabmCLt>4W7~`IqO-uNtNg(f;bY|kIJmV@?1y_1taUyfJhpiRH zwjTJIx%cZveGK~d!zvyV%~Cobz5#_| z6aVTPYT){;Z>mDEm}q;-I1iOul81LhZ(<@&3f0Tsj0mv2x{xxVr9uiS zX+yv0A}`mkfo|Cl=miG$l@}ocq~ft zgufl>Gq|dd@+^|_kZbS=@ClVNF+014EXsW@QYMA(O>;+HRdL=HerOTO9u)?{ zVUxn;ADOzdnK_vyd$$R4GJW+j%k>sz*`@@|zW+TJlk>LnjBY8u(hr5l*W6+>v&cJ<(J_&-_9^8FTh09OqdL6G0 z&W{hwwr8TJS(KX@5I!a4l?VZ0?;s!ZMlnLF?BtU{rgE+&RxDLlNW2#pvtPLfu1QUJ zGxCeC(Hz6$H~B>kRa`8)Jvi9NA6XEp;<{m$n*UE_lCDeODq(?c~^tE3jyZ+)g_CEEEb@h;st~Anj7*;t#&bB%^ zvq&^j%=wLa59@ z&anHN=@RjDg%~pD`Tfl*%i}sHfo(v@uV=ShI#b7PswV`ZkfIXH{CG2FFO+_c$C}05 zL24LxSFK@Kth?Q}?gT@84{HOoDC88acNvV(xAC>-Ql$J0r-L%$Ca3|;RDQ5qp^UNX z)YE+dzPeEV-IgwzF0%z~PS3~`re|i*vIS5pCam!m!aUwm7A^>o;9_3ijM)%$%E*&P z;}p>rJf+30Fri^%YxWV;V%NTQoQk_&pSKo{rWc0TB{~+hx__lC116xGFaH~5xwQBp zX@`jTpOhsm)_a#o@5{fXEIo^F>g^DVh<`&_!ankDgl7M5lm&|v=qFF9_6LY|HtuQJ zb8JrwltnHl58bC&m}sdBFc)|8NLYlRyGL(hZ4{vI2d2I2hb3M-F&-(8Ukap|@6e>K z;j3IVfo|h!w`Xzgzv*}f$4mQ2J{~;$lt8K^aq4(%eteL~9Et$*Ipou5y)*v{VyVSV zo73ec_a@|22(_PpuP!=jZ5b>JDZ3)}Ob9I06Eg~{=I50p$3CQ3Y)o6fWAoNjsM~1E zQb>JIYp3yvu)18Ro)S{29{uedmcEFhhekBr*#qjaZ1osa=Tug(DQ+hxKcpNd1S+S^ z?k=pll=>W4$iDqJpGl4Jcq0^$dJA%j4$oAmbQX!>gw@(V(P4R9jkS5HHN=R`V2FIG zP9)s=p#Kfr(m}9=XI-n8U6Y~##HJFVjfdDw~arzZ-xf>k0_$WOd~1gorUa&PwVs`TbSQe5rn-{=E7M9f9{`oR2`>AsLc;Kvn0 z=qpEmd5U5hsDz|XnTZ77n6Z4G{; zb71V&tRD&6gZPo_P_EmHGoDo5?|+flVX~bAj9{wLEC(4QM7-6Yz;RdtRjKC{D{=xv zfH3!cU$>8Ux%YHGROP47qF_#cB(DW?;y}qNS(vbSM_777;!aw&5}BOX`%l;&3ZX=I zLFnFXii5A==rwfk4^$B$(08I8i?+y&lL_)WbF+d0ckD~0^U)N3HXn+cAC*{GiU-$~ zGVbB*ctssxpP_e;#?oWf-UI%#qA0{*QfV{r;=Aav?OOh^rb@UsKm>c--@6iKmD^^# zGGXyV#o}iwz!netXf*5=4Y)l+JBE%KoT9wyg;~13<%aK*mG+R*g)q$0yQXXDW!e(7 z7?_Q!DA!V}oe%Yv6th4(nN?^|MQ7ulik!M*HiwatCaAzF1zfJh-(r>aCFW6JY_cNF zlAo=?5ipF_C}o+=MHaV(ik1>nemh-8ds(BoIM@cHaGXaWaUAbsujWUG)H(13x z<+%o&yR7JCD7XksD%&U%+0DoGbsaRk(weSPKD7t!!XfX8Bz?o?l}}2(kh7gk#p|Nz zCt}S)XH}y^6j&mX(yvFco}Rs0nFvSdhomZZvl$N7a7`;1oR%ep@=5L;}KTd^jaxTkon*DQQc*fc3KjCCj z3)?aLw8!B9(aU$0?ze~^_Q!jaUmA@RYX+*iEq(tNA|i1HA0_@UWz7$iWs-Md{~Hpq z*$HAlaOyn^Ug$k^07&HThzM2zBF3FAItXYVX6C4GC8)<>iXMZC;ZVMbKSF2HdD7@P35_hm7x@}l=( z02B+gERM~ohEUO}Em{%+xlq&^U2QIEkwpp2*1ScAy%jk{m+xumqv7c;s1w5yjsw*dFhV0KECVuEl`@=({S`JOldHB)tV{^G$F*tFK0D*}l*7=pRFT zc=&YKg5^u)ZlH?xclQ6_vAVNl;CkQq4Cq3;ff}}@3?Zvp_7)784l~w`+%B7jHAtod ziB2cta38q!egjLZsGGIO*S5R8%9z+zg(URB>7t|hG4%GX<3nLzOzbRZAOmTBqrnjO)08N7TnmFw-sjPU9 zbIj6>kY6~@IbznFkR#E^b5p1LWdWk`3wuHN(b zJb^nWApQusBc8n_+&O(KIKg~9_~bAM2(d9{F>{8oHbbDNK+lM-VM*IG44Gvi$N81u z4@H|^JGIGnmz|Y6HxT2`LW;Oa=A2PRLckhiqmDP9t1NvRftNh%mUgN&P~8Au_4%;6 zeW<&WBc^wCYm+N&q=lpjq9EQOyQi~+++9Py*4Tp;`V!1DwC@2i@~}yz3rm=&c!;qH zNzyFJxPnJdPLi>`<~Q)zsYw_f=>pZu$BRd8kCTe>+i^Cg8{ju#`-s=KLaw|uEH=OSPVHm3q!NP{z80Gz-i zLGAD|!ZHWfRM5)cvWK)Cn!kk~7jI^NXX)Fc6&Tj8YGito)r_i#$9hIa?{Ju5laM*o zv|IWXPmBybzSCVgGSPhps?y?`XBx=YdG6pe@1^Ygk@Bg;==gBin%jdV!wkk<`LWxv zX7|7cOd(M)p!cV@6QL0q>%2&ecLWN2=C`nk)n6K(3=oxQ0m}T-EoNPpTl$aX6dX1@ zjl6$Xa5#dhBZ9y%db9Y3rSAfbcou!|d_jVrQ~G|SSlEh$2?;6b8$19L?=fG{g4uu> zGk?oDs%8FPwfUdN1k?uwG|2*5Zw6?*7LLgm{>zIOxwl@^|6=}&4q(TL-H-P>@h5BZ zDM^?^&CBCos$WB1%^SzOJjSe*#fXm8|0dm4wp6V3Qd#!f`{-BLiy*n9{+9I_3qK(; zfisT9GzXg7g}h;;6+SEmc{;}U~Yki%|#V${lLMqaSkJW^wKq~pj~v<*f+7R{u@4~@J_lklyrE65mT=fznlCs=`gBOYdY1s#?IaGp~cL%P5yec`!jh+^% zw}nY+P?9cFDGx-HhZ@RHT!Sg4!S76?KeCJ*pBgy}O*W`Zl0D3;D$J|zTm8hdo-(wx z6>qh*duGdCY3E_YirdPHSF_R{ur>#}|MI~7&j+6FGA}CZ~8;>~8 z#9tQAVeN>9#DR&~1`m%ac*#Awr)=iOVK}z7EMRrH(VQi1`A=N))6=EYV$6Q;i+-(e<`huu2ZqPT;H2xlQ!}Iz0kIY7n-Ytt|>~BTN_xgtz_f!nk3X86Oi~bdshTBI; zI|emk!=fc~qjCy*&-czPs0HsAPF)3Lpw3xd2H~^Jh#G-#0re0#p=xXhu%4qx4GIpd zKJ}hWj=Yt*EX(dkDzr2@@6TxylU(xSOmwcXix>P(Z+06K{$omK>f9_o0e{eT`^XZw@P5cwW2?Qav!~bAF%EV9M{rva;6G1IppDh!Q>mp_1 z2IZ!B-DSmr9{H$ZUYK!0pu}X5`$=DgeRnxE1QlMv4llU8TYbn>kF< zKd9IG&@^mRq>P}>O5^5!9diUt&eE5fLaSA4Wcr<+xLyUBq_APi^xH4&;^HLM@7wSg4pWXE9E0&14t^w!e8a^e4F)Eo;=@Hg8F_M)nY?ieJz^NC}CVuP2oru z?dTJZXTLt9;P^JxL-En`5<&emf=Yq6RW0DHTzWl0ZG&SR5mLs>DZ@$%E}$8+0L8&? zE!5+~Fg5DY>)qoph!|e@#-+(L&w*{-#&9$kpDfvZeG}g)pj+1P+9S#s=$2El3MVwo z(O+y{!*eK6IsAVET*W-+{~(oS|3NDAb+oJY-)!!7rXw1AI?gFuj@xc6mfD2q_f_CK z*&!$?6EBX(GV#)v?)ipU@LMo_QK}{@>8b!Z>rR2;#2*en|C7$!blvY&fnnp=@tY%b z-ajw8oG&nZ^XH$>1Z*8`lRPm}l%9qwg}5^U+zu|WimNw!;VThtHYmD zn}z$dkXS8v`$%meZjXX^R`mA5xpLfRS;U&Gw-?SUa218bGlg$2e67S4JJ(39^6B;n zdDygc_>w6j9$&_09snBOXK=lVFrawhbk3sP{iW%OZo2?OU9*N1RF zBi}}zCthMX1pl8mS%>P@QbK4t0&gBZ zgoYD(OXwkF3g9{}S)-cMxXgpa1Wda=H;Nco!`4DpmYLDvq4NBYA3 z*+;r*hBe{$dF+$l$U`GI^0*{4OIG#v2|Gi|fH~GAw66|N9`%ZY|Ehw=Z4elZQa@46 zJg*8X4tkE0=o)5{Z85L%=>UJEDzh4_KR1p#`&VtSKR1KA2F1HtDnGK*2&-(fE|%Bs zq}vQ)92?vJLM&(KU>nK;gw0{Qs`N|r72_YmGLAh6)2$@h^pNVrF$=>4~ zADsrOOx%{IM&D-1KmBC0MdjR8aYwjxk7U4{n6CNTb*vwttwtm+ol=)hx!x{U>`szc zA@|+I4D2_NQOSYqI04f2(ap7s*)yY*Gj>Xh6fnvRuVvycRhT+em>>vr`jNyw#-}Qy zZSvAxe2z%}Waz>EY!n@i=l$6{x`!_USUpP&Zc|C$(nptKtJ?0bYUPLb?4_Dznq>>9unvgK&09O z_i46f&&ZO3!SS5F4c<1W5U9U+3#qf4Ya%bVb6!peO{$WnVaXoau5xjl2$wp WaXo=u@nqb()?NGl0pcv->wf_9SjiCp delta 18648 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
9b81=$%qZ zf*E>HYM-#sc}w8p^DT>-$ADn#;iLuU0~epP8VB>kmLS6~J;&qD`0yENRl-vGOias+ g_`YMJ(kI^24`Y`-8<|{X54Sf^j1xJFkzcF&AN}Cd3jhEB diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_null_0.azshadervariant index af7c9626941cbdb222496d8485268501ae2beaac..7922055a8251b89b19f98d9aedd460ebc6157b3a 100644 GIT binary patch delta 69 zcmeySdX`0;0SK5o7z6j+5H-8u$T#7G{L24j@w+C9AKu(77|f`UZ~9ZC;Krh+g|FOn R=duL8eIdU_p97=`3ILTt7u^5= literal 4854 zcmZQzU|?YGV4m-r>g{6blh}Lq=`GnObRz;TyI}%Bx>fQ)%kg$oP2cD9EKD7 zdJ6R!Z^a~stZEGK?%3b=wNYwUV$7MA8>!B>CS=#X_gOK0LaQU&<)6(!bAiCa*ZzBy z`o@2Udb-@NFEB~t{KctlQrR_O^-9fClO)BT#GjvO^6pG*C-+VPhz2CGvOfQ?0bykf zk#UcW-z+%Q!L$B}^XW-Bk!w6W6NMNUPIO!hc*0oICdj7}>UyC$>9EZD{CBfGE}Fiu z;3(KGw}vg|+d6l3Rq%>BgJwIxu1UENc; zVaCo$IpUrFPW)OdlgSuwBofA|@Az@AsjkUswYzg;J})?7gvA(O2`YQ5Z@u6KZoxHm z{ym#+Mse=;owOBFQs2tzbJ{Pst!U>FpZ`r7uQ-n^&M^bZFas-=2lrNeW8~~x*Sz?% zQ^EE%Yc2|>?cRyY5@2Dx_=WWhEY|;rSdUfagai92d&X>zDXZ#V`fX?|{LfKzdUkzG z-M;w^zi$2MXtQu+S#EnO=F7qS5{Pq!Z~U&oF4O#8cLR1Ar*Eq_WAP%esyZ?6{{r2C zvmWRG%bE6WjBhs?TfG@I>LO1H0Dm6*<1p_M}@um#~8P zj&pCeLF#Q=3nd{eGC(JFJ_|5YzB{|QJ>L1^#@%6|$CggFghbX0Ze?>UdVuM%`)}KJ zEHXgT_S8v-U^fkvhOu~^9~g?@mg1;4(c1Yjqp>-fXh-wrXc078(qgTia91e6>dWKh zC1>#`#^;Y2az;Pec6#yrKmM*Y9-xY5)urW+CiTa=&t6@!+P^|G6jJ-_iY=X<^WRl* zi^aaR$$jxZAY(PxZ!lc+67jKL{$x{1p!u(3mHy%pGp|Kf8oQtMKe1CV`SYUt3tzeE&SeRF`$B$= OKFIHC%O`mA0cil_MJm4l diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_objectsrg.azsrg b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_objectsrg.azsrg deleted file mode 100644 index dee11c7a6a..0000000000 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_objectsrg.azsrg +++ /dev/null @@ -1,9787 +0,0 @@ -{ - "name": "ObjectStream", - "version": 3, - "Objects": [ - { - "typeName": "ShaderResourceGroupAsset", - "typeId": "{F8C9F4AE-3F6A-45AD-B4FB-0CA415FCC2E1}", - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "ObjectSrg" - }, - { - "field": "m_perAPILayout", - "typeName": "AZStd::vector", - "typeId": "{D41FAB43-0CAA-5170-B2BF-9D547C097E4F}", - "Objects": [ - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3244871826" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_modelToWorld" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMax" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_enableDiffuseGI" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "108" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "124" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "128" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "132" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "136" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "140" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "144" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "148" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "152" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "156" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "244" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "288" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "304" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "320" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMax" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "31" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_modelToWorld" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "29" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "30" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_enableDiffuseGI" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "108" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "108" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "124" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "124" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "128" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "128" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "132" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "132" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "136" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "136" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "140" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "140" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "144" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "144" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "148" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "148" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "152" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "152" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "156" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "156" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "244" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "244" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "288" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "288" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "304" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "304" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "320" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "320" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "15872820120758734353" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "12354971452077948474" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "634125391" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_modelToWorld" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMax" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_enableDiffuseGI" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "108" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "124" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "128" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "132" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "136" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "140" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "144" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "148" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "152" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "156" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "244" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "288" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "304" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "320" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMax" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "31" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_modelToWorld" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "29" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "30" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_enableDiffuseGI" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "108" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "108" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "124" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "124" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "128" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "128" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "132" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "132" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "136" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "136" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "140" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "140" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "144" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "144" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "148" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "148" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "152" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "152" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "156" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "156" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "244" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "244" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "288" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "288" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "304" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "304" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "320" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "320" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "15872820120758734353" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "12354971452077948474" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3189070339" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}" - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeIrradiance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeStates" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_modelToWorld" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMax" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_enableDiffuseGI" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "108" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "124" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "128" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "132" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "136" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "140" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "144" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "148" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "152" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "156" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "244" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "288" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "304" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "320" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputConstantDescriptor", - "typeId": "{C8DC7D2D-CCA0-45AD-9430-52C06B69325C}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "m_constantByteOffset", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_constantByteCount", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMinFrontfaceDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "25" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumDistanceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "17" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "32" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeInverseIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "15" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_aabbMax" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "31" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeScrollOffsets" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "23" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeIrradianceEncodingGamma" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "14" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.normalBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "18" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_modelToWorld" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBrightnessThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "13" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeHysteresis" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "11" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeRayRotationTransform" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "21" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_ambientMultiplier" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[2]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "29" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[3]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "30" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[0]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "27" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding1[1]" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "28" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeChangeThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "12" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.padding" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "26" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.origin" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.numRaysPerProbe" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "6" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridSpacing" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "7" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeBackfaceThreshold" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "24" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeMaxRayDistance" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "8" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeNumIrradianceTexels" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "16" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeGridCounts" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "9" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeVariablePad0" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "20" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.volumeMovementType" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "22" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.probeDistanceExponent" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "10" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_enableDiffuseGI" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{285A5B8D-8218-5E10-B8AE-138374D8D113}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_probeGrid.viewBias" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "19" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "48" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "60" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "64" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "76" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "92" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "96" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "108" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "108" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "112" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "124" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "124" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "128" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "128" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "132" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "132" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "136" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "136" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "140" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "140" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "144" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "144" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "148" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "148" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "152" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "152" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "156" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "156" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "160" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "164" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "176" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "240" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "244" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "244" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "256" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "260" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "264" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "288" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "288" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "304" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "304" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "320" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "320" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "272" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "80" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - } - ] - } - ] - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "336" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "11445921412800959080" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "16873325821914315993" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_passsrg.azsrg b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_passsrg.azsrg deleted file mode 100644 index 63be26a393..0000000000 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_passsrg.azsrg +++ /dev/null @@ -1,1675 +0,0 @@ -{ - "name": "ObjectStream", - "version": 3, - "Objects": [ - { - "typeName": "ShaderResourceGroupAsset", - "typeId": "{F8C9F4AE-3F6A-45AD-B4FB-0CA415FCC2E1}", - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "PassSrg" - }, - { - "field": "m_perAPILayout", - "typeName": "AZStd::vector", - "typeId": "{D41FAB43-0CAA-5170-B2BF-9D547C097E4F}", - "Objects": [ - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3244871826" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputStaticSamplerDescriptor", - "typeId": "{A4D3C5AC-1624-4F78-9543-0E37DC93F491}", - "version": 1, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "LinearSampler" - }, - { - "field": "m_samplerState", - "typeName": "SamplerState", - "typeId": "{03CF3A01-8C2B-4A65-8781-6C25CFF0475F}", - "version": 3, - "Objects": [ - { - "field": "m_anisotropyMax", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_anisotropyEnable", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_filterMin", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMag", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMip", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "0" - }, - { - "field": "m_reductionType", - "typeName": "RHI::ReductionType", - "typeId": "{4230D40D-9984-4254-B062-2DD1CE4E7042}", - "value": "0" - }, - { - "field": "m_comparisonFunc", - "typeName": "RHI::ComparisonFunc", - "typeId": "{BF11B672-B9C4-4CFF-8228-EA09C4A36C36}", - "value": "7" - }, - { - "field": "m_addressU", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressV", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressW", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_mipLodMin", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_mipLodMax", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "15.0000000" - }, - { - "field": "m_mipLodBias", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_borderColor", - "typeName": "RHI::BorderColor", - "typeId": "{8A6739E8-538D-47FC-9068-45BCA5B7E5C4}", - "value": "1" - } - ] - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_depth" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_normal" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_normal" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_depth" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}" - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}" - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "2338845612922673940" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "634125391" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputStaticSamplerDescriptor", - "typeId": "{A4D3C5AC-1624-4F78-9543-0E37DC93F491}", - "version": 1, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "LinearSampler" - }, - { - "field": "m_samplerState", - "typeName": "SamplerState", - "typeId": "{03CF3A01-8C2B-4A65-8781-6C25CFF0475F}", - "version": 3, - "Objects": [ - { - "field": "m_anisotropyMax", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_anisotropyEnable", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_filterMin", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMag", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMip", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "0" - }, - { - "field": "m_reductionType", - "typeName": "RHI::ReductionType", - "typeId": "{4230D40D-9984-4254-B062-2DD1CE4E7042}", - "value": "0" - }, - { - "field": "m_comparisonFunc", - "typeName": "RHI::ComparisonFunc", - "typeId": "{BF11B672-B9C4-4CFF-8228-EA09C4A36C36}", - "value": "7" - }, - { - "field": "m_addressU", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressV", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressW", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_mipLodMin", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_mipLodMax", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "15.0000000" - }, - { - "field": "m_mipLodBias", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_borderColor", - "typeName": "RHI::BorderColor", - "typeId": "{8A6739E8-538D-47FC-9068-45BCA5B7E5C4}", - "value": "1" - } - ] - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_depth" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_normal" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_normal" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_depth" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}" - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}" - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "2338845612922673940" - } - ] - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZStd::pair", - "typeId": "{5C6406C8-77C9-597F-A3E9-249628D94902}", - "Objects": [ - { - "field": "value1", - "typeName": "Crc32", - "typeId": "{9F4E062E-06A0-46D4-85DF-E0DA96467D3A}", - "Objects": [ - { - "field": "Value", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "3189070339" - } - ] - }, - { - "field": "value2", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{FF05CAD3-238F-5E19-8FF2-083353BBEC47}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderResourceGroupLayout", - "typeId": "{1F92C651-9B83-4379-AB5C-5201F1B2C278}", - "version": 6, - "Objects": [ - { - "field": "m_staticSamplers", - "typeName": "AZStd::vector", - "typeId": "{D3BC4729-3DE0-57A1-96E0-DCFF98D4D975}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputStaticSamplerDescriptor", - "typeId": "{A4D3C5AC-1624-4F78-9543-0E37DC93F491}", - "version": 1, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "LinearSampler" - }, - { - "field": "m_samplerState", - "typeName": "SamplerState", - "typeId": "{03CF3A01-8C2B-4A65-8781-6C25CFF0475F}", - "version": 3, - "Objects": [ - { - "field": "m_anisotropyMax", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_anisotropyEnable", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_filterMin", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMag", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "1" - }, - { - "field": "m_filterMip", - "typeName": "RHI::FilterMode", - "typeId": "{CFAE2156-0293-4D71-87D5-68F5C9F98884}", - "value": "0" - }, - { - "field": "m_reductionType", - "typeName": "RHI::ReductionType", - "typeId": "{4230D40D-9984-4254-B062-2DD1CE4E7042}", - "value": "0" - }, - { - "field": "m_comparisonFunc", - "typeName": "RHI::ComparisonFunc", - "typeId": "{BF11B672-B9C4-4CFF-8228-EA09C4A36C36}", - "value": "7" - }, - { - "field": "m_addressU", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressV", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_addressW", - "typeName": "RHI::AddressMode", - "typeId": "{977F0D2E-4623-4B9F-B35C-328EEA309F73}", - "value": "0" - }, - { - "field": "m_mipLodMin", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_mipLodMax", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "15.0000000" - }, - { - "field": "m_mipLodBias", - "typeName": "float", - "typeId": "{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}", - "value": "0.0000000" - }, - { - "field": "m_borderColor", - "typeName": "RHI::BorderColor", - "typeId": "{8A6739E8-538D-47FC-9068-45BCA5B7E5C4}", - "value": "1" - } - ] - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_inputsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{A4650430-04B9-589A-991F-4B443DCD20EA}" - }, - { - "field": "m_inputsForImages", - "typeName": "AZStd::vector", - "typeId": "{909BE4D8-5A22-59A4-A135-4E73662E2D83}", - "Objects": [ - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_depth" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - }, - { - "field": "element", - "typeName": "ShaderInputImageDescriptor", - "typeId": "{913DBF3C-5556-4524-B928-174A42516D31}", - "version": 3, - "Objects": [ - { - "field": "m_name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_normal" - }, - { - "field": "m_type", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "5" - }, - { - "field": "m_access", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_count", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_registerId", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "m_inputsForBufferUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{DD5102EE-72A9-55F7-AB54-14F228FAE38F}" - }, - { - "field": "m_inputsForImageUnboundedArrays", - "typeName": "AZStd::vector", - "typeId": "{8042FF1E-9115-53F7-BE33-3DCDE9C0AB7F}" - }, - { - "field": "m_inputsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{4CF286E1-5297-581D-93E9-891166EDAD9A}" - }, - { - "field": "m_intervalsForBuffers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_intervalsForImages", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}", - "Objects": [ - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - }, - { - "field": "element", - "typeName": "Interval", - "typeId": "{B121C9FE-1C23-4721-9C3E-6BE036612743}", - "version": 1, - "Objects": [ - { - "field": "m_min", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - }, - { - "field": "m_max", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - } - ] - } - ] - }, - { - "field": "m_intervalsForSamplers", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_groupSizeForBuffers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImages", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "2" - }, - { - "field": "m_groupSizeForBufferUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForImageUnboundedArrays", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_groupSizeForSamplers", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_idReflectionForBuffers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A85E274A-4C1D-546F-B18C-452C5700BAE4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{F4529C0B-A2C0-5A32-A348-59D45FB1776B}" - } - ] - }, - { - "field": "m_idReflectionForImages", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{BB6D1ABE-9A2F-5F51-93CB-B1B866EFD5B4}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{BBD5D625-992D-5296-A631-9B84B00CE2F1}", - "Objects": [ - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_normal" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "1" - } - ] - } - ] - }, - { - "field": "element", - "typeName": "AZ::RHI::ReflectionNamePair>", - "typeId": "{DB3620EE-8854-52A8-B421-BFA17E6A687D}", - "version": 2, - "Objects": [ - { - "field": "Name", - "typeName": "Name", - "typeId": "{3D2B920C-9EFD-40D5-AAE0-DF131C3D4931}", - "value": "m_depth" - }, - { - "field": "Index", - "typeName": "AZ::RHI::Handle", - "typeId": "{5C8C0729-5D41-5299-80F1-395F79B02D70}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - } - ] - } - ] - } - ] - } - ] - }, - { - "field": "m_idReflectionForBufferUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{46520159-BC56-5E90-89AD-3CB0A5D295B0}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{CD6D3195-A87A-5E0C-AD4D-23457B3B8DCF}" - } - ] - }, - { - "field": "m_idReflectionForImageUnboundedArrays", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{A33C41AC-ABA0-5A34-9A6B-89BABDC151D7}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{14C5FF00-B370-575F-866B-B19B97F76D82}" - } - ] - }, - { - "field": "m_idReflectionForSamplers", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{2665EED7-CFB4-582B-B265-107348B1DFAC}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{1545A615-BFD7-515C-A1E9-710570135F08}" - } - ] - }, - { - "field": "m_constantsDataLayout", - "typeName": "AZStd::intrusive_ptr", - "typeId": "{CEB3049A-A620-56C8-AFBA-D0A98304333D}", - "Objects": [ - { - "field": "element", - "typeName": "ConstantsLayout", - "typeId": "{66EDAC32-7730-4F05-AF9D-B3CB0F5D90E0}", - "Objects": [ - { - "field": "m_inputs", - "typeName": "AZStd::vector", - "typeId": "{5FC25C85-DF2F-5219-918C-EBC47D7D6451}" - }, - { - "field": "m_idReflection", - "typeName": "AZ::RHI::NameIdReflectionMap>", - "typeId": "{7DE7E4B8-5C98-5F7A-985F-DDEEA5BB5366}", - "Objects": [ - { - "field": "ReflectionMap", - "typeName": "AZStd::vector", - "typeId": "{4B54CC87-1340-5B29-8040-2003033F9B93}" - } - ] - }, - { - "field": "m_intervals", - "typeName": "AZStd::vector", - "typeId": "{908FF0AE-802D-5311-A2E0-A6D595FBC480}" - }, - { - "field": "m_sizeInBytes", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "0" - } - ] - } - ] - }, - { - "field": "m_bindingSlot", - "typeName": "AZ::RHI::Handle", - "typeId": "{1811456D-0C3D-58C8-ACE8-FD47F4E80E25}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4" - } - ] - }, - { - "field": "m_shaderVariantKeyFallbackSize", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "0" - }, - { - "field": "m_shaderVariantKeyFallbackConstantIndex", - "typeName": "AZ::RHI::Handle", - "typeId": "{3F860893-1F57-5615-92CA-389B49687A9C}", - "version": 1, - "Objects": [ - { - "field": "m_index", - "typeName": "unsigned int", - "typeId": "{43DA906B-7DEF-4CA8-9790-854106D3F983}", - "value": "4294967295" - } - ] - }, - { - "field": "m_hash", - "typeName": "AZ::u64", - "typeId": "{D6597933-47CD-4FC8-B911-63F3E2B0993A}", - "value": "9381862091216273238" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_vulkan_0.azshadervariant index 4e9771d614e2d6c7fc40b5ed9eae75421e5e1360..780163eb077e53eccde2988aba5e2fc557d08b4d 100644 GIT binary patch delta 71 zcmbQYpYiKlMsWrpVD4ZH+;>CN?1m%Xgb(s7|Chz@nkasFbF<)YUxj?rpBe=>7Bww= U<)%BACGhPF`8E0+AWcvJ0RBN4)&Kwi delta 4367 zcmex5mvP>HMsWrpVD4a^@0;rFV(F9Ed-mh;qhahB6U7hLpXj(4@Px6ZO^{C|)b&Dh z(qWnP`R`_XTr_=Q!BMbXZVg+^x%u2ZLEeQ7iYFW$;w%}bJj?%iKG)HEQ}}*e%X5<;nSo6OlPxZPvA2guud|L%M)`^iOi z&r#(UY(HG@$80_pxdw|PSwN&u#uy}9boFkgbHg_CIfrk!&(%Khf_HxlWB8SQ z0k0o-dRp; z^_nyLy3*WL>pEf?>KPaq8Dgp`oBFYM1{fEOnR|9%kpb#C%ARkCMFyznu-Rg5tTGHI zR(|SFVk|4ZapUl9H?4)C=O5NzG8Ud5B{?a){LO+b%twBBw@v-in9<9U=Kyq9RLv%C z0Ss{l1`pX@_X_v=PaqkX5%n72Pqs=x-4I(tsHYv~;Jn6Y}^K~?cJ@;f4X?ua!P z?R1z`E9GH0=ii^rzwVl-F)&2_zO5z-60S!TXCTiM@(lroKinT}vJxUFdC5ug7}8m~ByEY2|l$}j_K znFse)ePiV8Ti3k!vs1zLHES*kr|sT})fR|Ri(gpJz-Iq{i2dkNKu!M{PB^fivS-ZZ zn6j$=rQe3e!v7par)Ss4)a{$!@axu}jy4NNmgTmmV!j;AFM(JheB*ZwcA4h)x*ITL zK>lZlar(A;GZs$*E3Oms{x8rSK>L9%u$*b{#`t!VvDJG4uNe!&H?h3rUsxIQdYz(C<`xf+0>@tm;y2d*&a7*>I`p=LWN9R7nzeHb`Ka=J^+sb3o zT7f4TUme)Bey_;!g|;W%3c7?9#CM!~vke%Cz*J;wp(KPw2I!{FX8~r)cV{=Z$2(u# zxH~NL*wX2i;P|SKdBLr0jztsDxbDAg+p)+1joVWv9fH+3a6-o7d46Cxf?JR1{;a2$ zM{)SG9u#i$@F)&{g3^BsRbv!~M{)SG9+Y&b8lyNoio>5^`^ihXqyZm1T6z?RKkEmg&_(iRJ$e~V=d!3C zt@lmuvd9Cy8Y8nTV%T`&udjkB^AWv*8;hD2zH-x@%M$qZh5Q +#include diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/ForwardPassSrg.shader b/Gems/Atom/Feature/Common/Assets/Shaders/ForwardPassSrg.shader new file mode 100644 index 0000000000..b714f0a007 --- /dev/null +++ b/Gems/Atom/Feature/Common/Assets/Shaders/ForwardPassSrg.shader @@ -0,0 +1,39 @@ +{ + "Source" : "ForwardPassSrg.azsl", + + "DepthStencilState" : + { + "Depth" : + { + "Enable" : false + }, + "Stencil" : + { + "Enable" : false + } + }, + + "ProgramSettings": + { + "EntryPoints": + [ + { + "name": "MainVS", + "type": "Vertex" + }, + { + "name": "MainPS", + "type": "Fragment" + } + ] + }, + + "Supervariants": + [ + { + "Name": "", + "PlusArguments": "", + "MinusArguments": "--strip-unused-srgs" + } + ] +} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/DepthOfFieldBlurBokeh.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/DepthOfFieldBlurBokeh.azsl index 60951ebeb5..1a9d3ecb7a 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/DepthOfFieldBlurBokeh.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/DepthOfFieldBlurBokeh.azsl @@ -20,7 +20,7 @@ #include #include -ShaderResourceGroup PassSrg : SRG_PerDraw +ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback { Texture2D m_colorAndDofFactorTexture; float m_radiusMin; diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/DepthOfFieldComposite.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/DepthOfFieldComposite.azsl index 0fd89e475e..377a07e9b5 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/DepthOfFieldComposite.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/DepthOfFieldComposite.azsl @@ -16,7 +16,7 @@ #include -ShaderResourceGroup PassSrg : SRG_PerDraw +ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback { Texture2D m_InputColor; Texture2D m_InputDepth; diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/LookModificationTransform.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/LookModificationTransform.azsl index 3e708a2ca3..c3e6ed7418 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/LookModificationTransform.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/LookModificationTransform.azsl @@ -18,7 +18,7 @@ #include #include "EyeAdaptationUtil.azsli" -ShaderResourceGroup PassSrg : SRG_PerDraw +ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback { Texture2D m_framebuffer; Sampler LinearSampler diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/OutputTransform.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/OutputTransform.azsl index b480d6e5c5..b225f123ed 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/OutputTransform.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/OutputTransform.azsl @@ -17,7 +17,7 @@ #include #include -ShaderResourceGroup PassSrg : SRG_PerDraw +ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback { Texture2D m_framebuffer; Sampler LinearSampler diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAABlendingWeightCalculation.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAABlendingWeightCalculation.azsl index 04d6a8bf8b..e58a91a68a 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAABlendingWeightCalculation.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAABlendingWeightCalculation.azsl @@ -25,7 +25,7 @@ struct VSOutputBlendingWeightCalculation float4 m_offset[3] : TEXCOORD2; }; -ShaderResourceGroup PassSrg : SRG_PerDraw +ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback { Texture2D m_framebuffer; Texture2D m_areaTexture; diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAAEdgeDetection.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAAEdgeDetection.azsl index eca2e56ae2..e4d71d5c80 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAAEdgeDetection.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAAEdgeDetection.azsl @@ -24,7 +24,7 @@ struct VSOutputSMAAEdgeDetection float4 m_offset[3] : TEXCOORD1; }; -ShaderResourceGroup PassSrg : SRG_PerDraw +ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback { Texture2D m_framebuffer; Texture2D m_depthTexture; diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAANeighborhoodBlending.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAANeighborhoodBlending.azsl index de4e8cf83c..170f1e79f4 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAANeighborhoodBlending.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/PostProcessing/SMAANeighborhoodBlending.azsl @@ -25,7 +25,7 @@ struct VSOutputNeighborhoodBlending float4 m_offset : TEXCOORD1; }; -ShaderResourceGroup PassSrg : SRG_PerDraw +ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback { Texture2D m_framebuffer; Texture2D m_framebufferPassThrough; diff --git a/Gems/Atom/Feature/Common/Code/Include/Atom/Feature/ReflectionProbe/ReflectionProbeFeatureProcessor.h b/Gems/Atom/Feature/Common/Code/Include/Atom/Feature/ReflectionProbe/ReflectionProbeFeatureProcessor.h index ff84f77a3e..f9fd9cb779 100644 --- a/Gems/Atom/Feature/Common/Code/Include/Atom/Feature/ReflectionProbe/ReflectionProbeFeatureProcessor.h +++ b/Gems/Atom/Feature/Common/Code/Include/Atom/Feature/ReflectionProbe/ReflectionProbeFeatureProcessor.h @@ -60,8 +60,10 @@ namespace AZ // create the box vertex and index streams, which are used to render the probe volumes void CreateBoxMesh(); - // load the shader and retrieve pipeline state, Srg, and drawListTag - void LoadShader(const char* filePath, RPI::Ptr& pipelineState, Data::Asset& srgAsset, RHI::DrawListTag& drawListTag); + // load the shader and retrieve pipeline state, shader, Srg Layout, and drawListTag + void LoadShader( + const char* filePath, RPI::Ptr& pipelineState, Data::Instance& shader, + RHI::Ptr& srgLayout, RHI::DrawListTag& drawListTag); // RPI::SceneNotificationBus::Handler overrides void OnRenderPipelinePassesChanged(RPI::RenderPipeline* renderPipeline) override; diff --git a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/DynamicPrimitiveProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/DynamicPrimitiveProcessor.cpp index 1b59802c45..552ca5d19f 100644 --- a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/DynamicPrimitiveProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/DynamicPrimitiveProcessor.cpp @@ -164,7 +164,7 @@ namespace AZ Data::Instance srg; if (useManualViewProjectionOverride || primitive.m_primitiveType == PrimitiveType_PointList) { - srg = RPI::ShaderResourceGroup::Create(m_shaderData.m_perDrawSrgAsset); + srg = RPI::ShaderResourceGroup::Create(m_shader->GetAsset(), m_shader->GetSupervariantIndex(), m_shaderData.m_perDrawSrgLayout->GetName()); if (!srg) { AZ_Warning("AuxGeom", false, "Failed to create a shader resource group for an AuxGeom draw, Ignoring the draw"); @@ -425,10 +425,10 @@ namespace AZ } // Get the per-object SRG and store the indices of the data we need to set per object - m_shaderData.m_perDrawSrgAsset = m_shader->FindShaderResourceGroupAsset(Name{ "PerDrawSrg" }); - if (!m_shaderData.m_perDrawSrgAsset.GetId().IsValid()) + m_shaderData.m_perDrawSrgLayout = m_shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Draw); + if (!m_shaderData.m_perDrawSrgLayout) { - AZ_Error("DynamicPrimitiveProcessor", false, "Failed to get shader resource group asset"); + AZ_Error("DynamicPrimitiveProcessor", false, "Failed to get shader resource group layout"); return; } @@ -439,7 +439,7 @@ namespace AZ m_shaderData.m_drawListTag = m_shader->GetDrawListTag(); // Create a default SRG for draws that don't use a manual view projection override - m_shaderData.m_defaultSRG = RPI::ShaderResourceGroup::Create(m_shaderData.m_perDrawSrgAsset); + m_shaderData.m_defaultSRG = RPI::ShaderResourceGroup::Create(m_shader->GetAsset(), m_shader->GetSupervariantIndex(), m_shaderData.m_perDrawSrgLayout->GetName()); AZ_Assert(m_shaderData.m_defaultSRG != nullptr, "Creating the default SRG unexpectedly failed"); m_shaderData.m_defaultSRG->SetConstant(m_shaderData.m_pointSizeIndex, 10.0f); m_shaderData.m_defaultSRG->Compile(); diff --git a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/DynamicPrimitiveProcessor.h b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/DynamicPrimitiveProcessor.h index a23cad7962..55e05ae0b6 100644 --- a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/DynamicPrimitiveProcessor.h +++ b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/DynamicPrimitiveProcessor.h @@ -24,7 +24,6 @@ #include #include -#include #include #include "AuxGeomBase.h" @@ -100,7 +99,7 @@ namespace AZ struct ShaderData { - AZ::Data::Asset m_perDrawSrgAsset; + RHI::Ptr m_perDrawSrgLayout; Data::Instance m_defaultSRG; // default SRG for draws not overriding the view projection matrix AZ::RHI::DrawListTag m_drawListTag; // The draw list tag from our shader variant (determines which views primitives are in and which pass) diff --git a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/FixedShapeProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/FixedShapeProcessor.cpp index cebc6e8937..fda468db8b 100644 --- a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/FixedShapeProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/FixedShapeProcessor.cpp @@ -1369,15 +1369,12 @@ namespace AZ void FixedShapeProcessor::FillShaderData(Data::Instance& shader, ShaderData& shaderData) { // Get the per-object SRG and store the indices of the data we need to set per object - shaderData.m_perObjectSrgAsset = shader->FindShaderResourceGroupAsset(Name{ "ObjectSrg" }); - if (!shaderData.m_perObjectSrgAsset.GetId().IsValid()) + shaderData.m_shaderAsset = shader->GetAsset(); + shaderData.m_supervariantIndex = shader->GetSupervariantIndex(); + shaderData.m_perObjectSrgLayout = shader->FindShaderResourceGroupLayout(Name{ "ObjectSrg" }); + if (!shaderData.m_perObjectSrgLayout) { - AZ_Error("FixedShapeProcessor", false, "Failed to get shader resource group asset"); - return; - } - else if (!shaderData.m_perObjectSrgAsset.IsReady()) - { - AZ_Error("FixedShapeProcessor", false, "Shader resource group asset is not loaded"); + AZ_Error("FixedShapeProcessor", false, "Failed to get shader resource group layout"); return; } @@ -1568,7 +1565,7 @@ namespace AZ // Create a SRG for the shape to specify its transform and color // [GFX TODO] [ATOM-2333] Try to avoid doing SRG create/compile per draw. Possibly using instancing. - auto srg = RPI::ShaderResourceGroup::Create(shaderData.m_perObjectSrgAsset); + auto srg = RPI::ShaderResourceGroup::Create(shaderData.m_shaderAsset, shaderData.m_supervariantIndex, shaderData.m_perObjectSrgLayout->GetName()); if (!srg) { AZ_Warning("AuxGeom", false, "Failed to create a shader resource group for an AuxGeom draw, Ignoring the draw"); @@ -1667,7 +1664,7 @@ namespace AZ { ShaderData& shaderData = m_perObjectShaderData[drawStyle==DrawStyle_Shaded?1:0]; // Create a SRG for the box to specify its transform and color - auto srg = RPI::ShaderResourceGroup::Create(shaderData.m_perObjectSrgAsset); + auto srg = RPI::ShaderResourceGroup::Create(shaderData.m_shaderAsset, shaderData.m_supervariantIndex, shaderData.m_perObjectSrgLayout->GetName()); if (!srg) { AZ_Warning("AuxGeom", false, "Failed to create a shader resource group for an AuxGeom draw, Ignoring the draw"); diff --git a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/FixedShapeProcessor.h b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/FixedShapeProcessor.h index 3e898b47c2..9bf6abecfc 100644 --- a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/FixedShapeProcessor.h +++ b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/FixedShapeProcessor.h @@ -244,7 +244,9 @@ namespace AZ struct ShaderData { - AZ::Data::Asset m_perObjectSrgAsset; + AZ::Data::Asset m_shaderAsset; // For @m_perObjectSrgLayout. + AZ::RPI::SupervariantIndex m_supervariantIndex; // For @m_perObjectSrgLayout. + AZ::RHI::Ptr m_perObjectSrgLayout; // Comes from @m_shaderAsset AZ::RHI::DrawListTag m_drawListTag; AZ::RHI::ShaderInputNameIndex m_colorIndex = "m_color"; AZ::RHI::ShaderInputNameIndex m_modelToWorldIndex = "m_modelToWorld"; diff --git a/Gems/Atom/Feature/Common/Code/Source/CoreLights/CapsuleLightFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/CoreLights/CapsuleLightFeatureProcessor.cpp index d5bacf18f1..3c01222a4c 100644 --- a/Gems/Atom/Feature/Common/Code/Source/CoreLights/CapsuleLightFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/CoreLights/CapsuleLightFeatureProcessor.cpp @@ -53,7 +53,7 @@ namespace AZ desc.m_bufferSrgName = "m_capsuleLights"; desc.m_elementCountSrgName = "m_capsuleLightCount"; desc.m_elementSize = sizeof(CapsuleLightData); - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_lightBufferHandler = GpuBufferHandler(desc); } diff --git a/Gems/Atom/Feature/Common/Code/Source/CoreLights/DirectionalLightFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/CoreLights/DirectionalLightFeatureProcessor.cpp index c4f4bc54b3..ae8280fc16 100644 --- a/Gems/Atom/Feature/Common/Code/Source/CoreLights/DirectionalLightFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/CoreLights/DirectionalLightFeatureProcessor.cpp @@ -145,7 +145,7 @@ namespace AZ void DirectionalLightFeatureProcessor::Activate() { - const RHI::ShaderResourceGroupLayout* sceneSrgLayout = RPI::RPISystemInterface::Get()->GetSceneSrgAsset()->GetLayout(); + const RHI::ShaderResourceGroupLayout* sceneSrgLayout = RPI::RPISystemInterface::Get()->GetSceneSrgLayout().get(); GpuBufferHandler::Descriptor desc; @@ -786,7 +786,7 @@ namespace AZ } }; - const RHI::ShaderResourceGroupLayout* viewSrgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + const RHI::ShaderResourceGroupLayout* viewSrgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); const IndexedDataVector lastShadowData = m_shadowData[nullptr]; IndexedDataVector lastEsmParameter = m_esmParameterData[nullptr]; while (lastEsmParameter.GetDataCount() < Shadow::MaxNumberOfCascades) diff --git a/Gems/Atom/Feature/Common/Code/Source/CoreLights/DiskLightFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/CoreLights/DiskLightFeatureProcessor.cpp index d0fb702d5a..9fca9b512b 100644 --- a/Gems/Atom/Feature/Common/Code/Source/CoreLights/DiskLightFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/CoreLights/DiskLightFeatureProcessor.cpp @@ -54,7 +54,7 @@ namespace AZ desc.m_bufferSrgName = "m_diskLights"; desc.m_elementCountSrgName = "m_diskLightCount"; desc.m_elementSize = sizeof(DiskLightData); - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_lightBufferHandler = GpuBufferHandler(desc); m_shadowFeatureProcessor = GetParentScene()->GetFeatureProcessor(); diff --git a/Gems/Atom/Feature/Common/Code/Source/CoreLights/PointLightFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/CoreLights/PointLightFeatureProcessor.cpp index bb81c52b15..ef5d7f0d03 100644 --- a/Gems/Atom/Feature/Common/Code/Source/CoreLights/PointLightFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/CoreLights/PointLightFeatureProcessor.cpp @@ -60,7 +60,7 @@ namespace AZ desc.m_bufferSrgName = "m_pointLights"; desc.m_elementCountSrgName = "m_pointLightCount"; desc.m_elementSize = sizeof(PointLightData); - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_shadowFeatureProcessor = GetParentScene()->GetFeatureProcessor(); m_lightBufferHandler = GpuBufferHandler(desc); diff --git a/Gems/Atom/Feature/Common/Code/Source/CoreLights/PolygonLightFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/CoreLights/PolygonLightFeatureProcessor.cpp index 25b7526c5f..1dcb75f5b2 100644 --- a/Gems/Atom/Feature/Common/Code/Source/CoreLights/PolygonLightFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/CoreLights/PolygonLightFeatureProcessor.cpp @@ -54,7 +54,7 @@ namespace AZ::Render desc.m_bufferSrgName = "m_polygonLights"; desc.m_elementCountSrgName = "m_polygonLightCount"; desc.m_elementSize = sizeof(PolygonLightData); - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_lightBufferHandler = GpuBufferHandler(desc); @@ -63,7 +63,7 @@ namespace AZ::Render desc.m_bufferSrgName = "m_polygonLightPoints"; desc.m_elementCountSrgName = ""; desc.m_elementSize = 16; // While only a 12 byte float3 is needed for positions, using 16 bytes since that's the minimal alignment. - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_lightPolygonPointBufferHandler = GpuBufferHandler(desc); diff --git a/Gems/Atom/Feature/Common/Code/Source/CoreLights/QuadLightFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/CoreLights/QuadLightFeatureProcessor.cpp index ac97d22205..12f6a809d8 100644 --- a/Gems/Atom/Feature/Common/Code/Source/CoreLights/QuadLightFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/CoreLights/QuadLightFeatureProcessor.cpp @@ -56,7 +56,7 @@ namespace AZ desc.m_bufferSrgName = "m_quadLights"; desc.m_elementCountSrgName = "m_quadLightCount"; desc.m_elementSize = sizeof(QuadLightData); - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_lightBufferHandler = GpuBufferHandler(desc); diff --git a/Gems/Atom/Feature/Common/Code/Source/CoreLights/SimplePointLightFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/CoreLights/SimplePointLightFeatureProcessor.cpp index 591abc1b57..80d6d17a85 100644 --- a/Gems/Atom/Feature/Common/Code/Source/CoreLights/SimplePointLightFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/CoreLights/SimplePointLightFeatureProcessor.cpp @@ -53,7 +53,7 @@ namespace AZ desc.m_bufferSrgName = "m_simplePointLights"; desc.m_elementCountSrgName = "m_simplePointLightCount"; desc.m_elementSize = sizeof(SimplePointLightData); - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_lightBufferHandler = GpuBufferHandler(desc); } diff --git a/Gems/Atom/Feature/Common/Code/Source/CoreLights/SimpleSpotLightFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/CoreLights/SimpleSpotLightFeatureProcessor.cpp index f26c0b19b3..95baa8e120 100644 --- a/Gems/Atom/Feature/Common/Code/Source/CoreLights/SimpleSpotLightFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/CoreLights/SimpleSpotLightFeatureProcessor.cpp @@ -53,7 +53,7 @@ namespace AZ desc.m_bufferSrgName = "m_simpleSpotLights"; desc.m_elementCountSrgName = "m_simpleSpotLightCount"; desc.m_elementSize = sizeof(SimpleSpotLightData); - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_lightBufferHandler = GpuBufferHandler(desc); } diff --git a/Gems/Atom/Feature/Common/Code/Source/Decals/DecalFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/Decals/DecalFeatureProcessor.cpp index 7c97af4f79..78ce3726af 100644 --- a/Gems/Atom/Feature/Common/Code/Source/Decals/DecalFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/Decals/DecalFeatureProcessor.cpp @@ -55,7 +55,7 @@ namespace AZ desc.m_bufferSrgName = "m_decals"; desc.m_elementCountSrgName = "m_decalCount"; desc.m_elementSize = sizeof(DecalData); - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_decalBufferHandler = GpuBufferHandler(desc); @@ -332,7 +332,7 @@ namespace AZ void DecalFeatureProcessor::CacheShaderIndices() { - const RHI::ShaderResourceGroupLayout* viewSrgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + const RHI::ShaderResourceGroupLayout* viewSrgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_baseColorMapsIndex = viewSrgLayout->FindShaderInputImageIndex(m_baseColorMapShaderName); AZ_Warning("DecalFeatureProcessor", m_baseColorMapsIndex.IsValid(), "Unable to find baseColorMaps in decal shader."); diff --git a/Gems/Atom/Feature/Common/Code/Source/Decals/DecalTextureArrayFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/Decals/DecalTextureArrayFeatureProcessor.cpp index e783f3b531..ea1ac1b797 100644 --- a/Gems/Atom/Feature/Common/Code/Source/Decals/DecalTextureArrayFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/Decals/DecalTextureArrayFeatureProcessor.cpp @@ -72,7 +72,7 @@ namespace AZ desc.m_bufferSrgName = "m_decals"; desc.m_elementCountSrgName = "m_decalCount"; desc.m_elementSize = sizeof(DecalData); - desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + desc.m_srgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); m_decalBufferHandler = GpuBufferHandler(desc); @@ -329,7 +329,7 @@ namespace AZ { for (int i = 0; i < NumTextureArrays; ++i) { - const RHI::ShaderResourceGroupLayout* viewSrgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + const RHI::ShaderResourceGroupLayout* viewSrgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); const AZStd::string baseName = "m_decalTextureArray" + AZStd::to_string(i); m_decalTextureArrayIndices[i] = viewSrgLayout->FindShaderInputImageIndex(Name(baseName.c_str())); diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGrid.cpp b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGrid.cpp index cfdfd9efa4..d0fe85c6de 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGrid.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGrid.cpp @@ -506,11 +506,11 @@ namespace AZ srg->SetConstant(constantIndex, m_probeRayRotationTransform); } - void DiffuseProbeGrid::UpdateRayTraceSrg(const Data::Asset& srgAsset) + void DiffuseProbeGrid::UpdateRayTraceSrg(const Data::Instance& shader, const RHI::Ptr& layout) { if (!m_rayTraceSrg) { - m_rayTraceSrg = RPI::ShaderResourceGroup::Create(srgAsset); + m_rayTraceSrg = RPI::ShaderResourceGroup::Create(shader->GetAsset(), shader->GetSupervariantIndex(), layout->GetName()); AZ_Error("DiffuseProbeGrid", m_rayTraceSrg.get(), "Failed to create RayTrace shader resource group"); } @@ -551,11 +551,11 @@ namespace AZ SetGridConstants(m_rayTraceSrg); } - void DiffuseProbeGrid::UpdateBlendIrradianceSrg(const Data::Asset& srgAsset) + void DiffuseProbeGrid::UpdateBlendIrradianceSrg(const Data::Instance& shader, const RHI::Ptr& layout) { if (!m_blendIrradianceSrg) { - m_blendIrradianceSrg = RPI::ShaderResourceGroup::Create(srgAsset); + m_blendIrradianceSrg = RPI::ShaderResourceGroup::Create(shader->GetAsset(), shader->GetSupervariantIndex(), layout->GetName()); AZ_Error("DiffuseProbeGrid", m_blendIrradianceSrg.get(), "Failed to create BlendIrradiance shader resource group"); } @@ -574,11 +574,11 @@ namespace AZ SetGridConstants(m_blendIrradianceSrg); } - void DiffuseProbeGrid::UpdateBlendDistanceSrg(const Data::Asset& srgAsset) + void DiffuseProbeGrid::UpdateBlendDistanceSrg(const Data::Instance& shader, const RHI::Ptr& layout) { if (!m_blendDistanceSrg) { - m_blendDistanceSrg = RPI::ShaderResourceGroup::Create(srgAsset); + m_blendDistanceSrg = RPI::ShaderResourceGroup::Create(shader->GetAsset(), shader->GetSupervariantIndex(), layout->GetName()); AZ_Error("DiffuseProbeGrid", m_blendDistanceSrg.get(), "Failed to create BlendDistance shader resource group"); } @@ -597,14 +597,15 @@ namespace AZ SetGridConstants(m_blendDistanceSrg); } - void DiffuseProbeGrid::UpdateBorderUpdateSrgs(const Data::Asset& rowSrgAsset, - const Data::Asset& columnSrgAsset) + void DiffuseProbeGrid::UpdateBorderUpdateSrgs( + const Data::Instance& rowShader, const RHI::Ptr& rowSrgLayout, + const Data::Instance& columnShader, const RHI::Ptr& columnSrgLayout) { // border update row irradiance { if (!m_borderUpdateRowIrradianceSrg) { - m_borderUpdateRowIrradianceSrg = RPI::ShaderResourceGroup::Create(rowSrgAsset); + m_borderUpdateRowIrradianceSrg = RPI::ShaderResourceGroup::Create(rowShader->GetAsset(), rowShader->GetSupervariantIndex(), rowSrgLayout->GetName()); AZ_Error("DiffuseProbeGrid", m_borderUpdateRowIrradianceSrg.get(), "Failed to create BorderUpdateRowIrradiance shader resource group"); } @@ -623,7 +624,7 @@ namespace AZ { if (!m_borderUpdateColumnIrradianceSrg) { - m_borderUpdateColumnIrradianceSrg = RPI::ShaderResourceGroup::Create(columnSrgAsset); + m_borderUpdateColumnIrradianceSrg = RPI::ShaderResourceGroup::Create(columnShader->GetAsset(), columnShader->GetSupervariantIndex(), columnSrgLayout->GetName()); AZ_Error("DiffuseProbeGrid", m_borderUpdateColumnIrradianceSrg.get(), "Failed to create BorderUpdateColumnRowIrradiance shader resource group"); } @@ -642,7 +643,7 @@ namespace AZ { if (!m_borderUpdateRowDistanceSrg) { - m_borderUpdateRowDistanceSrg = RPI::ShaderResourceGroup::Create(rowSrgAsset); + m_borderUpdateRowDistanceSrg = RPI::ShaderResourceGroup::Create(rowShader->GetAsset(), rowShader->GetSupervariantIndex(), rowSrgLayout->GetName()); AZ_Error("DiffuseProbeGrid", m_borderUpdateRowDistanceSrg.get(), "Failed to create BorderUpdateRowDistance shader resource group"); } @@ -661,7 +662,7 @@ namespace AZ { if (!m_borderUpdateColumnDistanceSrg) { - m_borderUpdateColumnDistanceSrg = RPI::ShaderResourceGroup::Create(columnSrgAsset); + m_borderUpdateColumnDistanceSrg = RPI::ShaderResourceGroup::Create(columnShader->GetAsset(), columnShader->GetSupervariantIndex(), columnSrgLayout->GetName()); AZ_Error("DiffuseProbeGrid", m_borderUpdateColumnDistanceSrg.get(), "Failed to create BorderUpdateColumnRowDistance shader resource group"); } @@ -677,11 +678,11 @@ namespace AZ } } - void DiffuseProbeGrid::UpdateRelocationSrg(const Data::Asset& srgAsset) + void DiffuseProbeGrid::UpdateRelocationSrg(const Data::Instance& shader, const RHI::Ptr& layout) { if (!m_relocationSrg) { - m_relocationSrg = RPI::ShaderResourceGroup::Create(srgAsset); + m_relocationSrg = RPI::ShaderResourceGroup::Create(shader->GetAsset(), shader->GetSupervariantIndex(), layout->GetName()); AZ_Error("DiffuseProbeGrid", m_relocationSrg.get(), "Failed to create Relocation shader resource group"); } @@ -702,11 +703,11 @@ namespace AZ SetGridConstants(m_relocationSrg); } - void DiffuseProbeGrid::UpdateClassificationSrg(const Data::Asset& srgAsset) + void DiffuseProbeGrid::UpdateClassificationSrg(const Data::Instance& shader, const RHI::Ptr& layout) { if (!m_classificationSrg) { - m_classificationSrg = RPI::ShaderResourceGroup::Create(srgAsset); + m_classificationSrg = RPI::ShaderResourceGroup::Create(shader->GetAsset(), shader->GetSupervariantIndex(), layout->GetName()); AZ_Error("DiffuseProbeGrid", m_classificationSrg.get(), "Failed to create Classification shader resource group"); } @@ -732,7 +733,7 @@ namespace AZ if (!m_renderObjectSrg) { - m_renderObjectSrg = RPI::ShaderResourceGroup::Create(m_renderData->m_srgAsset); + m_renderObjectSrg = RPI::ShaderResourceGroup::Create(m_renderData->m_shader->GetAsset(), m_renderData->m_shader->GetSupervariantIndex(), m_renderData->m_srgLayout->GetName()); AZ_Error("DiffuseProbeGrid", m_renderObjectSrg.get(), "Failed to create render shader resource group"); } diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGrid.h b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGrid.h index 4a732ae7af..093f85906d 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGrid.h +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGrid.h @@ -51,8 +51,9 @@ namespace AZ // render pipeline state RPI::Ptr m_pipelineState; - // render Srg asset - Data::Asset m_srgAsset; + // For the render Srg + Data::Instance m_shader; + RHI::Ptr m_srgLayout; // render drawlist tag RHI::DrawListTag m_drawListTag; @@ -129,12 +130,13 @@ namespace AZ const Data::Instance& GetRenderObjectSrg() const { return m_renderObjectSrg; } // Srg updates - void UpdateRayTraceSrg(const Data::Asset& srgAsset); - void UpdateBlendIrradianceSrg(const Data::Asset& srgAsset); - void UpdateBlendDistanceSrg(const Data::Asset& srgAsset); - void UpdateBorderUpdateSrgs(const Data::Asset& rowSrgAsset, const Data::Asset& columnSrgAsset); - void UpdateRelocationSrg(const Data::Asset& srgAsset); - void UpdateClassificationSrg(const Data::Asset& srgAsset); + void UpdateRayTraceSrg(const Data::Instance& shader, const RHI::Ptr& srgLayout); + void UpdateBlendIrradianceSrg(const Data::Instance& shader, const RHI::Ptr& srgLayout); + void UpdateBlendDistanceSrg(const Data::Instance& shader, const RHI::Ptr& srgLayout); + void UpdateBorderUpdateSrgs(const Data::Instance& rowShader, const RHI::Ptr& rowSrgLayout, + const Data::Instance& columnShader, const RHI::Ptr& columnSrgLayout); + void UpdateRelocationSrg(const Data::Instance& shader, const RHI::Ptr& srgLayout); + void UpdateClassificationSrg(const Data::Instance& shader, const RHI::Ptr& srgLayout); void UpdateRenderObjectSrg(); // textures diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistancePass.cpp b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistancePass.cpp index 04e68136f1..0852430f30 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistancePass.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistancePass.cpp @@ -55,7 +55,7 @@ namespace AZ m_pipelineState = m_shader->AcquirePipelineState(pipelineStateDescriptor); // load Pass Srg asset - m_srgAsset = m_shader->FindShaderResourceGroupAsset(RPI::SrgBindingSlot::Pass); + m_srgLayout = m_shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Pass); // retrieve the number of threads per thread group from the shader const auto numThreads = m_shader->GetAsset()->GetAttribute(RHI::ShaderStage::Compute, Name{ "numthreads" }); @@ -154,7 +154,7 @@ namespace AZ { // the diffuse probe grid Srg must be updated in the Compile phase in order to successfully bind the ReadWrite shader inputs // (see ValidateSetImageView() in ShaderResourceGroupData.cpp) - diffuseProbeGrid->UpdateBlendDistanceSrg(m_srgAsset); + diffuseProbeGrid->UpdateBlendDistanceSrg(m_shader, m_srgLayout); diffuseProbeGrid->GetBlendDistanceSrg()->Compile(); } diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistancePass.h b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistancePass.h index 0f56059636..4f9816960a 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistancePass.h +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendDistancePass.h @@ -54,7 +54,7 @@ namespace AZ // shader Data::Instance m_shader; const RHI::PipelineState* m_pipelineState = nullptr; - Data::Asset m_srgAsset; + RHI::Ptr m_srgLayout; RHI::DispatchDirect m_dispatchArgs; }; } // namespace Render diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiancePass.cpp b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiancePass.cpp index f1fe792542..3d7de66418 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiancePass.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiancePass.cpp @@ -55,7 +55,7 @@ namespace AZ m_pipelineState = m_shader->AcquirePipelineState(pipelineStateDescriptor); // load Pass Srg asset - m_srgAsset = m_shader->FindShaderResourceGroupAsset(RPI::SrgBindingSlot::Pass); + m_srgLayout = m_shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Pass); // retrieve the number of threads per thread group from the shader const auto numThreads = m_shader->GetAsset()->GetAttribute(RHI::ShaderStage::Compute, Name{ "numthreads" }); @@ -154,7 +154,7 @@ namespace AZ { // the diffuse probe grid Srg must be updated in the Compile phase in order to successfully bind the ReadWrite shader inputs // (see ValidateSetImageView() in ShaderResourceGroupData.cpp) - diffuseProbeGrid->UpdateBlendIrradianceSrg(m_srgAsset); + diffuseProbeGrid->UpdateBlendIrradianceSrg(m_shader, m_srgLayout); diffuseProbeGrid->GetBlendIrradianceSrg()->Compile(); } diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiancePass.h b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiancePass.h index 4e080fe960..a871600eef 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiancePass.h +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBlendIrradiancePass.h @@ -54,7 +54,7 @@ namespace AZ // shader Data::Instance m_shader; const RHI::PipelineState* m_pipelineState = nullptr; - Data::Asset m_srgAsset; + RHI::Ptr m_srgLayout; RHI::DispatchDirect m_dispatchArgs; }; } // namespace Render diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdatePass.cpp b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdatePass.cpp index a24d54d9b7..961c594501 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdatePass.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdatePass.cpp @@ -37,20 +37,20 @@ namespace AZ LoadShader("Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateRow.azshader", m_rowShader, m_rowPipelineState, - m_rowSrgAsset, + m_rowSrgLayout, m_rowDispatchArgs); LoadShader("Shaders/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdateColumn.azshader", m_columnShader, m_columnPipelineState, - m_columnSrgAsset, + m_columnSrgLayout, m_columnDispatchArgs); } void DiffuseProbeGridBorderUpdatePass::LoadShader(AZStd::string shaderFilePath, Data::Instance& shader, const RHI::PipelineState*& pipelineState, - Data::Asset& srgAsset, + RHI::Ptr& srgLayout, RHI::DispatchDirect& dispatchArgs) { // load shader @@ -68,7 +68,7 @@ namespace AZ pipelineState = shader->AcquirePipelineState(pipelineStateDescriptor); // load Pass Srg asset - srgAsset = shader->FindShaderResourceGroupAsset(RPI::SrgBindingSlot::Pass); + srgLayout = shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Pass); // retrieve the number of threads per thread group from the shader const auto numThreads = shader->GetAsset()->GetAttribute(RHI::ShaderStage::Compute, Name{ "numthreads" }); @@ -157,7 +157,7 @@ namespace AZ { // the diffuse probe grid Srg must be updated in the Compile phase in order to successfully bind the ReadWrite shader inputs // (see line ValidateSetImageView() in ShaderResourceGroupData.cpp) - diffuseProbeGrid->UpdateBorderUpdateSrgs(m_rowSrgAsset, m_columnSrgAsset); + diffuseProbeGrid->UpdateBorderUpdateSrgs(m_rowShader, m_rowSrgLayout, m_columnShader, m_columnSrgLayout); diffuseProbeGrid->GetBorderUpdateRowIrradianceSrg()->Compile(); diffuseProbeGrid->GetBorderUpdateColumnIrradianceSrg()->Compile(); diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdatePass.h b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdatePass.h index 1633a38aff..2d7fa05cae 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdatePass.h +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridBorderUpdatePass.h @@ -40,7 +40,7 @@ namespace AZ void LoadShader(AZStd::string shaderFilePath, Data::Instance& shader, const RHI::PipelineState*& pipelineState, - Data::Asset& srgAsset, + RHI::Ptr& srgLayout, RHI::DispatchDirect& dispatchArgs); // Pass overrides @@ -55,8 +55,8 @@ namespace AZ Data::Instance m_columnShader; const RHI::PipelineState* m_rowPipelineState = nullptr; const RHI::PipelineState* m_columnPipelineState = nullptr; - Data::Asset m_rowSrgAsset; - Data::Asset m_columnSrgAsset; + RHI::Ptr m_rowSrgLayout; + RHI::Ptr m_columnSrgLayout; RHI::DispatchDirect m_rowDispatchArgs; RHI::DispatchDirect m_columnDispatchArgs; }; diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridClassificationPass.cpp b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridClassificationPass.cpp index 8d39e6fcc8..6b1d8a7e87 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridClassificationPass.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridClassificationPass.cpp @@ -59,7 +59,7 @@ namespace AZ m_pipelineState = m_shader->AcquirePipelineState(pipelineStateDescriptor); // load Pass Srg asset - m_srgAsset = m_shader->FindShaderResourceGroupAsset(RPI::SrgBindingSlot::Pass); + m_srgLayout = m_shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Pass); // retrieve the number of threads per thread group from the shader const auto numThreads = m_shader->GetAsset()->GetAttribute(RHI::ShaderStage::Compute, Name{ "numthreads" }); @@ -147,7 +147,7 @@ namespace AZ { // the diffuse probe grid Srg must be updated in the Compile phase in order to successfully bind the ReadWrite shader inputs // (see ValidateSetImageView() in ShaderResourceGroupData.cpp) - diffuseProbeGrid->UpdateClassificationSrg(m_srgAsset); + diffuseProbeGrid->UpdateClassificationSrg(m_shader, m_srgLayout); diffuseProbeGrid->GetClassificationSrg()->Compile(); } } diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridClassificationPass.h b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridClassificationPass.h index eef59c3753..ed49883917 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridClassificationPass.h +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridClassificationPass.h @@ -55,7 +55,7 @@ namespace AZ // shader Data::Instance m_shader; const RHI::PipelineState* m_pipelineState = nullptr; - Data::Asset m_srgAsset; + RHI::Ptr m_srgLayout; RHI::DispatchDirect m_dispatchArgs; }; } // namespace Render diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridFeatureProcessor.cpp index ba24bcc001..eca89f15db 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridFeatureProcessor.cpp @@ -90,9 +90,9 @@ namespace AZ m_probeGridRenderData.m_pipelineState->Finalize(); // load object shader resource group - m_probeGridRenderData.m_srgAsset = shader->FindShaderResourceGroupAsset(Name{ "ObjectSrg" }); - AZ_Error("DiffuseProbeGridFeatureProcessor", m_probeGridRenderData.m_srgAsset.GetId().IsValid(), "Failed to find ObjectSrg asset"); - AZ_Error("DiffuseProbeGridFeatureProcessor", m_probeGridRenderData.m_srgAsset.IsReady(), "ObjectSrg asset is not loaded"); + m_probeGridRenderData.m_shader = shader; + m_probeGridRenderData.m_srgLayout = shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Object); + AZ_Error("DiffuseProbeGridFeatureProcessor", m_probeGridRenderData.m_srgLayout != nullptr, "Failed to find ObjectSrg layout"); } EnableSceneNotification(); diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingPass.cpp b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingPass.cpp index c77f66645e..3adef43a11 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingPass.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingPass.cpp @@ -86,9 +86,8 @@ namespace AZ m_globalPipelineState = m_rayTracingShader->AcquirePipelineState(rayGenerationShaderDescriptor); AZ_Assert(m_globalPipelineState, "Failed to acquire ray tracing global pipeline state"); - m_globalSrgAsset = m_rayTracingShader->FindShaderResourceGroupAsset(Name{ "RayTracingGlobalSrg" }); - AZ_Error("ReflectionProbeFeatureProcessor", m_globalSrgAsset.GetId().IsValid(), "Failed to find RayTracingGlobalSrg asset for shader [%s]", shaderFilePath.c_str()); - AZ_Error("ReflectionProbeFeatureProcessor", m_globalSrgAsset.IsReady(), "RayTracingGlobalSrg asset is not loaded for shader [%s]", shaderFilePath.c_str()); + m_globalSrgLayout = m_rayTracingShader->FindShaderResourceGroupLayout(Name{ "RayTracingGlobalSrg" }); + AZ_Error( "ReflectionProbeFeatureProcessor", m_globalSrgLayout != nullptr, "Failed to find RayTracingGlobalSrg layout for shader [%s]", shaderFilePath.c_str()); // build the ray tracing pipeline state descriptor RHI::RayTracingPipelineStateDescriptor descriptor; @@ -264,7 +263,7 @@ namespace AZ { // the diffuse probe grid Srg must be updated in the Compile phase in order to successfully bind the ReadWrite shader // inputs (see line ValidateSetImageView() in ShaderResourceGroupData.cpp) - diffuseProbeGrid->UpdateRayTraceSrg(m_globalSrgAsset); + diffuseProbeGrid->UpdateRayTraceSrg(m_rayTracingShader, m_globalSrgLayout); diffuseProbeGrid->GetRayTraceSrg()->Compile(); } } diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingPass.h b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingPass.h index 910537a2f1..94b2766a22 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingPass.h +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRayTracingPass.h @@ -63,8 +63,9 @@ namespace AZ // ray tracing shader table RHI::Ptr m_rayTracingShaderTable; - // ray tracing global shader resource group asset and pipeline state - Data::Asset m_globalSrgAsset; + // ray tracing global shader resource group layout and pipeline state + RHI::Ptr m_globalSrgLayout; + RHI::ConstPtr m_globalPipelineState; bool m_initialized = false; diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRelocationPass.cpp b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRelocationPass.cpp index 2f0ed373b9..086b0e91fd 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRelocationPass.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRelocationPass.cpp @@ -59,7 +59,7 @@ namespace AZ m_pipelineState = m_shader->AcquirePipelineState(pipelineStateDescriptor); // load Pass Srg asset - m_srgAsset = m_shader->FindShaderResourceGroupAsset(RPI::SrgBindingSlot::Pass); + m_srgLayout = m_shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Pass); // retrieve the number of threads per thread group from the shader const auto numThreads = m_shader->GetAsset()->GetAttribute(RHI::ShaderStage::Compute, Name{ "numthreads" }); @@ -171,7 +171,7 @@ namespace AZ { // the diffuse probe grid Srg must be updated in the Compile phase in order to successfully bind the ReadWrite shader inputs // (see ValidateSetImageView() in ShaderResourceGroupData.cpp) - diffuseProbeGrid->UpdateRelocationSrg(m_srgAsset); + diffuseProbeGrid->UpdateRelocationSrg(m_shader, m_srgLayout); diffuseProbeGrid->GetRelocationSrg()->Compile(); diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRelocationPass.h b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRelocationPass.h index 1900f8b786..48c4ef0bf1 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRelocationPass.h +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRelocationPass.h @@ -55,7 +55,7 @@ namespace AZ // shader Data::Instance m_shader; const RHI::PipelineState* m_pipelineState = nullptr; - Data::Asset m_srgAsset; + RHI::Ptr m_srgLayout; RHI::DispatchDirect m_dispatchArgs; // revision number of the ray tracing data when the shader table was built diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRenderPass.cpp b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRenderPass.cpp index f025079994..4ad5c8657e 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRenderPass.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRenderPass.cpp @@ -39,10 +39,10 @@ namespace AZ return; } - m_srgAsset = m_shader->FindShaderResourceGroupAsset(RPI::SrgBindingSlot::Pass); - AZ_Assert(m_srgAsset->IsReady(), "[DiffuseProbeGridRenderPass '%s']: Failed to find SRG asset", GetPathName().GetCStr()); + m_srgLayout = m_shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Pass); + AZ_Assert(m_srgLayout != nullptr, "[DiffuseProbeGridRenderPass '%s']: Failed to find SRG layout", GetPathName().GetCStr()); - m_shaderResourceGroup = RPI::ShaderResourceGroup::Create(m_srgAsset); + m_shaderResourceGroup = RPI::ShaderResourceGroup::Create(m_shader->GetAsset(), m_shader->GetSupervariantIndex(), m_srgLayout->GetName()); AZ_Assert(m_shaderResourceGroup, "[DiffuseProbeGridRenderPass '%s']: Failed to create SRG", GetPathName().GetCStr()); } diff --git a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRenderPass.h b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRenderPass.h index 0ac8b695a5..eb6db1f6cb 100644 --- a/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRenderPass.h +++ b/Gems/Atom/Feature/Common/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridRenderPass.h @@ -45,7 +45,7 @@ namespace AZ void CompileResources(const RHI::FrameGraphCompileContext& context) override; Data::Instance m_shader; - Data::Asset m_srgAsset; + RHI::Ptr m_srgLayout; }; } // namespace Render } // namespace AZ diff --git a/Gems/Atom/Feature/Common/Code/Source/ImGui/ImGuiPass.cpp b/Gems/Atom/Feature/Common/Code/Source/ImGui/ImGuiPass.cpp index 750402ada8..51daaac9cd 100644 --- a/Gems/Atom/Feature/Common/Code/Source/ImGui/ImGuiPass.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/ImGui/ImGuiPass.cpp @@ -466,19 +466,14 @@ namespace AZ // Get shader resource group { - auto perObjectSrgAsset = m_shader->FindShaderResourceGroupAsset(Name{"ObjectSrg"}); - if (!perObjectSrgAsset.GetId().IsValid()) + auto perObjectSrgLayout = m_shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Object); + if (!perObjectSrgLayout) { - AZ_Error(PassName, false, "Failed to get shader resource group asset"); - return; - } - else if (!perObjectSrgAsset.IsReady()) - { - AZ_Error(PassName, false, "Shader resource group asset is not loaded"); + AZ_Error(PassName, false, "Failed to get shader resource group layout"); return; } - m_resourceGroup = RPI::ShaderResourceGroup::Create(perObjectSrgAsset); + m_resourceGroup = RPI::ShaderResourceGroup::Create(m_shader->GetAsset(), m_shader->GetSupervariantIndex(), perObjectSrgLayout->GetName()); if (!m_resourceGroup) { AZ_Error(PassName, false, "Failed to create shader resource group"); diff --git a/Gems/Atom/Feature/Common/Code/Source/Mesh/MeshFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/Mesh/MeshFeatureProcessor.cpp index 3001831817..b087269089 100644 --- a/Gems/Atom/Feature/Common/Code/Source/Mesh/MeshFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/Mesh/MeshFeatureProcessor.cpp @@ -639,15 +639,15 @@ namespace AZ continue; } - auto& objectSrgAsset = material->GetAsset()->GetObjectSrgAsset(); + auto& objectSrgLayout = material->GetAsset()->GetObjectSrgLayout(); - if (!objectSrgAsset) + if (!objectSrgLayout) { AZ_Warning("MeshFeatureProcessor", false, "No per-object ShaderResourceGroup found."); continue; } - if (m_shaderResourceGroup && m_shaderResourceGroup->GetAsset() != objectSrgAsset) + if (m_shaderResourceGroup && m_shaderResourceGroup->GetLayout()->GetHash() != objectSrgLayout->GetHash()) { AZ_Warning("MeshFeatureProcessor", false, "All materials on a model must use the same per-object ShaderResourceGroup. Skipping."); continue; @@ -657,7 +657,8 @@ namespace AZ // in shaderResourceGroupInOut. All of the Model's draw packets will use this same instance. if (!m_shaderResourceGroup) { - m_shaderResourceGroup = RPI::ShaderResourceGroup::Create(objectSrgAsset); + auto& shaderAsset = material->GetAsset()->GetMaterialTypeAsset()->GetShaderAssetForObjectSrg(); + m_shaderResourceGroup = RPI::ShaderResourceGroup::Create(shaderAsset, RPI::DefaultSupervariantIndex, objectSrgLayout->GetName()); if (!m_shaderResourceGroup) { AZ_Warning("MeshFeatureProcessor", false, "Failed to create a new shader resource group, skipping."); diff --git a/Gems/Atom/Feature/Common/Code/Source/MorphTargets/MorphTargetDispatchItem.cpp b/Gems/Atom/Feature/Common/Code/Source/MorphTargets/MorphTargetDispatchItem.cpp index 7b3aedd64e..4373f66bd0 100644 --- a/Gems/Atom/Feature/Common/Code/Source/MorphTargets/MorphTargetDispatchItem.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/MorphTargets/MorphTargetDispatchItem.cpp @@ -103,19 +103,14 @@ namespace AZ bool MorphTargetDispatchItem::InitPerInstanceSRG() { - auto perInstanceSrgAsset = m_morphTargetShader->FindShaderResourceGroupAsset(AZ::Name{ "MorphTargetInstanceSrg" }); - if (!perInstanceSrgAsset.GetId().IsValid()) + auto perInstanceSrgLayout = m_morphTargetShader->FindShaderResourceGroupLayout(AZ::Name{ "MorphTargetInstanceSrg" }); + if (!perInstanceSrgLayout) { - AZ_Error("MorphTargetDispatchItem", false, "Failed to get shader resource group asset"); - return false; - } - else if (!perInstanceSrgAsset.IsReady()) - { - AZ_Error("MorphTargetDispatchItem", false, "Shader resource group asset is not loaded"); + AZ_Error("MorphTargetDispatchItem", false, "Failed to get shader resource group layout"); return false; } - m_instanceSrg = RPI::ShaderResourceGroup::Create(perInstanceSrgAsset); + m_instanceSrg = RPI::ShaderResourceGroup::Create(m_morphTargetShader->GetAsset(), m_morphTargetShader->GetSupervariantIndex(), perInstanceSrgLayout->GetName()); if (!m_instanceSrg) { AZ_Error("MorphTargetDispatchItem", false, "Failed to create shader resource group for morph target"); diff --git a/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.cpp index 2db396e36d..3023e06b50 100644 --- a/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.cpp @@ -65,19 +65,22 @@ namespace AZ // create the TLAS object m_tlas = AZ::RHI::RayTracingTlas::CreateRHIRayTracingTlas(); - // load the RayTracingSceneSrg asset - Data::Asset rayTracingSceneSrgAsset = - RPI::AssetUtils::LoadAssetByProductPath("shaderlib/atom/features/raytracing/raytracingscenesrg_raytracingscenesrg.azsrg", RPI::AssetUtils::TraceLevel::Error); - AZ_Assert(rayTracingSceneSrgAsset.IsReady(), "Failed to load RayTracingSceneSrg asset"); + // load the RayTracingSrg asset asset + m_rayTracingSrgAsset = RPI::AssetUtils::LoadCriticalAsset("shaderlib/atom/features/rayTracing/raytracingsrgs.azshader"); + if (!m_rayTracingSrgAsset.IsReady()) + { + AZ_Assert(false, "Failed to load RayTracingSrg asset"); + return; + } - m_rayTracingSceneSrg = RPI::ShaderResourceGroup::Create(rayTracingSceneSrgAsset); + // create the RayTracingSceneSrg + m_rayTracingSceneSrg = RPI::ShaderResourceGroup::Create(m_rayTracingSrgAsset, RPI::DefaultSupervariantIndex, Name("RayTracingSceneSrg")); + AZ_Assert(m_rayTracingSceneSrg, "Failed to create RayTracingSceneSrg"); - // load the RayTracingMaterialSrg asset - Data::Asset rayTracingMaterialSrgAsset = - RPI::AssetUtils::LoadAssetByProductPath("shaderlib/atom/features/raytracing/raytracingmaterialsrg_raytracingmaterialsrg.azsrg", RPI::AssetUtils::TraceLevel::Error); - AZ_Assert(rayTracingMaterialSrgAsset.IsReady(), "Failed to load RayTracingMaterialSrg asset"); - - m_rayTracingMaterialSrg = RPI::ShaderResourceGroup::Create(rayTracingMaterialSrgAsset); + // create the RayTracingMaterialSrg + const AZ::Name rayTracingMaterialSrgName("RayTracingMaterialSrg"); + m_rayTracingMaterialSrg = RPI::ShaderResourceGroup::Create(m_rayTracingSrgAsset, RPI::DefaultSupervariantIndex, Name("RayTracingMaterialSrg")); + AZ_Assert(m_rayTracingMaterialSrg, "Failed to create RayTracingMaterialSrg"); } void RayTracingFeatureProcessor::SetMesh(const ObjectId objectId, const SubMeshVector& subMeshes) diff --git a/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.h b/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.h index 90a9383ae6..66f068e147 100644 --- a/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.h +++ b/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.h @@ -205,10 +205,9 @@ namespace AZ // ray tracing acceleration structure (TLAS) RHI::Ptr m_tlas; - // ray tracing scene Srg + // RayTracingScene and RayTracingMaterial asset and Srgs + Data::Asset m_rayTracingSrgAsset; Data::Instance m_rayTracingSceneSrg; - - // ray tracing material Srg Data::Instance m_rayTracingMaterialSrg; // current revision number of ray tracing data diff --git a/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingPass.cpp b/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingPass.cpp index 988870cc0e..158cf795ad 100644 --- a/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingPass.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingPass.cpp @@ -112,20 +112,19 @@ namespace AZ AZ_Assert(m_globalPipelineState, "Failed to acquire ray tracing global pipeline state"); // create global srg - Data::Asset globalSrgAsset = m_rayGenerationShader->FindShaderResourceGroupAsset(RayTracingGlobalSrgBindingSlot); - AZ_Error("PassSystem", globalSrgAsset.GetId().IsValid(), "RayTracingPass [%s] Failed to find RayTracingGlobalSrg asset", GetPathName().GetCStr()); - AZ_Error("PassSystem", globalSrgAsset.IsReady(), "RayTracingPass [%s] asset is not loaded for shader", GetPathName().GetCStr()); + const auto& globalSrgLayout = m_rayGenerationShader->FindShaderResourceGroupLayout(RayTracingGlobalSrgBindingSlot); + AZ_Error("PassSystem", globalSrgLayout != nullptr, "RayTracingPass [%s] Failed to find RayTracingGlobalSrg layout", GetPathName().GetCStr()); - m_shaderResourceGroup = RPI::ShaderResourceGroup::Create(globalSrgAsset); + m_shaderResourceGroup = RPI::ShaderResourceGroup::Create( m_rayGenerationShader->GetAsset(), m_rayGenerationShader->GetSupervariantIndex(), globalSrgLayout->GetName()); AZ_Assert(m_shaderResourceGroup, "RayTracingPass [%s]: Failed to create RayTracingGlobalSrg", GetPathName().GetCStr()); RPI::PassUtils::BindDataMappingsToSrg(m_passDescriptor, m_shaderResourceGroup.get()); // check to see if the shader requires the View and RayTracingMaterial Srgs - Data::Asset viewSrgAsset = m_rayGenerationShader->FindShaderResourceGroupAsset(RPI::SrgBindingSlot::View); - m_requiresViewSrg = viewSrgAsset.GetId().IsValid(); + const auto& viewSrgLayout = m_rayGenerationShader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::View); + m_requiresViewSrg = (viewSrgLayout != nullptr); - Data::Asset rayTracingMaterialSrgAsset = m_rayGenerationShader->FindShaderResourceGroupAsset(RayTracingMaterialSrgBindingSlot); - m_requiresRayTracingMaterialSrg = rayTracingMaterialSrgAsset.GetId().IsValid(); + const auto& rayTracingMaterialSrgLayout = m_rayGenerationShader->FindShaderResourceGroupLayout(RayTracingMaterialSrgBindingSlot); + m_requiresRayTracingMaterialSrg = (rayTracingMaterialSrgLayout != nullptr); // build the ray tracing pipeline state descriptor RHI::RayTracingPipelineStateDescriptor descriptor; diff --git a/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbe.cpp b/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbe.cpp index 3e9e316a5a..ba7fd38428 100644 --- a/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbe.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbe.cpp @@ -82,16 +82,28 @@ namespace AZ Data::AssetBus::MultiHandler::BusConnect(m_visualizationMaterialAsset.GetId()); // reflection render Srgs - m_stencilSrg = RPI::ShaderResourceGroup::Create(m_reflectionRenderData->m_stencilSrgAsset); + m_stencilSrg = RPI::ShaderResourceGroup::Create( + m_reflectionRenderData->m_stencilShader->GetAsset(), + m_reflectionRenderData->m_stencilShader->GetSupervariantIndex(), + m_reflectionRenderData->m_stencilSrgLayout->GetName()); AZ_Error("ReflectionProbeFeatureProcessor", m_stencilSrg.get(), "Failed to create stencil shader resource group"); - m_blendWeightSrg = RPI::ShaderResourceGroup::Create(m_reflectionRenderData->m_blendWeightSrgAsset); + m_blendWeightSrg = RPI::ShaderResourceGroup::Create( + m_reflectionRenderData->m_blendWeightShader->GetAsset(), + m_reflectionRenderData->m_blendWeightShader->GetSupervariantIndex(), + m_reflectionRenderData->m_blendWeightSrgLayout->GetName()); AZ_Error("ReflectionProbeFeatureProcessor", m_blendWeightSrg.get(), "Failed to create blend weight shader resource group"); - m_renderOuterSrg = RPI::ShaderResourceGroup::Create(m_reflectionRenderData->m_renderOuterSrgAsset); + m_renderOuterSrg = RPI::ShaderResourceGroup::Create( + m_reflectionRenderData->m_renderOuterShader->GetAsset(), + m_reflectionRenderData->m_renderOuterShader->GetSupervariantIndex(), + m_reflectionRenderData->m_renderOuterSrgLayout->GetName()); AZ_Error("ReflectionProbeFeatureProcessor", m_renderOuterSrg.get(), "Failed to create render outer reflection shader resource group"); - m_renderInnerSrg = RPI::ShaderResourceGroup::Create(m_reflectionRenderData->m_renderInnerSrgAsset); + m_renderInnerSrg = RPI::ShaderResourceGroup::Create( + m_reflectionRenderData->m_renderInnerShader->GetAsset(), + m_reflectionRenderData->m_renderInnerShader->GetSupervariantIndex(), + m_reflectionRenderData->m_renderInnerSrgLayout->GetName()); AZ_Error("ReflectionProbeFeatureProcessor", m_renderInnerSrg.get(), "Failed to create render inner reflection shader resource group"); // setup culling diff --git a/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbe.h b/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbe.h index f062e0a42f..35ac7d0838 100644 --- a/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbe.h +++ b/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbe.h @@ -21,7 +21,6 @@ #include #include #include -#include #include namespace AZ @@ -43,10 +42,17 @@ namespace AZ RPI::Ptr m_renderOuterPipelineState; RPI::Ptr m_renderInnerPipelineState; - Data::Asset m_stencilSrgAsset; - Data::Asset m_blendWeightSrgAsset; - Data::Asset m_renderOuterSrgAsset; - Data::Asset m_renderInnerSrgAsset; + Data::Instance m_stencilShader; + RHI::Ptr m_stencilSrgLayout; + + Data::Instance m_blendWeightShader; + RHI::Ptr m_blendWeightSrgLayout; + + Data::Instance m_renderOuterShader; + RHI::Ptr m_renderOuterSrgLayout; + + Data::Instance m_renderInnerShader; + RHI::Ptr m_renderInnerSrgLayout; RHI::DrawListTag m_stencilDrawListTag; RHI::DrawListTag m_blendWeightDrawListTag; diff --git a/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbeFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbeFeatureProcessor.cpp index 740069fc6b..7e2b61e261 100644 --- a/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbeFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/ReflectionProbe/ReflectionProbeFeatureProcessor.cpp @@ -59,29 +59,36 @@ namespace AZ // load shaders for stencil, blend weight, and render passes LoadShader("shaders/reflections/reflectionprobestencil.azshader", m_reflectionRenderData.m_stencilPipelineState, - m_reflectionRenderData.m_stencilSrgAsset, + m_reflectionRenderData.m_stencilShader, + m_reflectionRenderData.m_stencilSrgLayout, m_reflectionRenderData.m_stencilDrawListTag); LoadShader("shaders/reflections/reflectionprobeblendweight.azshader", m_reflectionRenderData.m_blendWeightPipelineState, - m_reflectionRenderData.m_blendWeightSrgAsset, + m_reflectionRenderData.m_blendWeightShader, + m_reflectionRenderData.m_blendWeightSrgLayout, m_reflectionRenderData.m_blendWeightDrawListTag); LoadShader("shaders/reflections/reflectionproberenderouter.azshader", m_reflectionRenderData.m_renderOuterPipelineState, - m_reflectionRenderData.m_renderOuterSrgAsset, + m_reflectionRenderData.m_renderOuterShader, + m_reflectionRenderData.m_renderOuterSrgLayout, m_reflectionRenderData.m_renderOuterDrawListTag); LoadShader("shaders/reflections/reflectionproberenderinner.azshader", m_reflectionRenderData.m_renderInnerPipelineState, - m_reflectionRenderData.m_renderInnerSrgAsset, + m_reflectionRenderData.m_renderInnerShader, + m_reflectionRenderData.m_renderInnerSrgLayout, m_reflectionRenderData.m_renderInnerDrawListTag); // create ShaderResourceGroups here so we can get the layout and cache the indices // Note: the SRGs are not needed beyond this method since each probe creates its own SRGs, we are just interested in the indices // cache probe stencil shader indices - Data::Instance stencilSrg = RPI::ShaderResourceGroup::Create(m_reflectionRenderData.m_stencilSrgAsset); + Data::Instance stencilSrg = RPI::ShaderResourceGroup::Create( + m_reflectionRenderData.m_stencilShader->GetAsset(), + m_reflectionRenderData.m_stencilShader->GetSupervariantIndex(), + m_reflectionRenderData.m_stencilSrgLayout->GetName()); AZ_Error("ReflectionProbeFeatureProcessor", stencilSrg.get(), "Failed to create stencil back face shader resource group"); const RHI::ShaderResourceGroupLayout* stencilSrgLayout = stencilSrg->GetLayout(); @@ -91,7 +98,10 @@ namespace AZ // cache probe render shader indices // Note: the outer and inner render shaders use the same Srg - Data::Instance renderReflectionSrg = RPI::ShaderResourceGroup::Create(m_reflectionRenderData.m_renderOuterSrgAsset); + Data::Instance renderReflectionSrg = RPI::ShaderResourceGroup::Create( + m_reflectionRenderData.m_renderOuterShader->GetAsset(), + m_reflectionRenderData.m_renderOuterShader->GetSupervariantIndex(), + m_reflectionRenderData.m_renderOuterSrgLayout->GetName()); AZ_Error("ReflectionProbeFeatureProcessor", renderReflectionSrg.get(), "Failed to create render reflection shader resource group"); const RHI::ShaderResourceGroupLayout* renderReflectionSrgLayout = renderReflectionSrg->GetLayout(); @@ -472,11 +482,12 @@ namespace AZ void ReflectionProbeFeatureProcessor::LoadShader( const char* filePath, RPI::Ptr& pipelineState, - Data::Asset& srgAsset, + Data::Instance& shader, + RHI::Ptr& srgLayout, RHI::DrawListTag& drawListTag) { // load shader - Data::Instance shader = RPI::LoadShader(filePath); + shader = RPI::LoadShader(filePath); AZ_Error("ReflectionProbeFeatureProcessor", shader, "Failed to find asset for shader [%s]", filePath); // store drawlist tag @@ -490,9 +501,8 @@ namespace AZ pipelineState->Finalize(); // load object shader resource group - srgAsset = shader->FindShaderResourceGroupAsset(Name{ "ObjectSrg" }); - AZ_Error("ReflectionProbeFeatureProcessor", srgAsset.GetId().IsValid(), "Failed to find ObjectSrg asset for shader [%s]", filePath); - AZ_Error("ReflectionProbeFeatureProcessor", srgAsset.IsReady(), "ObjectSrg asset is not loaded for shader [%s]", filePath); + srgLayout = shader->FindShaderResourceGroupLayout(RPI::SrgBindingSlot::Object); + AZ_Error("ReflectionProbeFeatureProcessor", srgLayout != nullptr, "Failed to find ObjectSrg layout from shader [%s]", filePath); } void ReflectionProbeFeatureProcessor::OnRenderPipelinePassesChanged(RPI::RenderPipeline* renderPipeline) diff --git a/Gems/Atom/Feature/Common/Code/Source/Shadows/ProjectedShadowFeatureProcessor.cpp b/Gems/Atom/Feature/Common/Code/Source/Shadows/ProjectedShadowFeatureProcessor.cpp index da174ab0d5..a2d1491cad 100644 --- a/Gems/Atom/Feature/Common/Code/Source/Shadows/ProjectedShadowFeatureProcessor.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/Shadows/ProjectedShadowFeatureProcessor.cpp @@ -38,7 +38,7 @@ namespace AZ::Render void ProjectedShadowFeatureProcessor::Activate() { - const RHI::ShaderResourceGroupLayout* viewSrgLayout = RPI::RPISystemInterface::Get()->GetViewSrgAsset()->GetLayout(); + const RHI::ShaderResourceGroupLayout* viewSrgLayout = RPI::RPISystemInterface::Get()->GetViewSrgLayout().get(); GpuBufferHandler::Descriptor desc; diff --git a/Gems/Atom/Feature/Common/Code/Source/SkinnedMesh/SkinnedMeshDispatchItem.cpp b/Gems/Atom/Feature/Common/Code/Source/SkinnedMesh/SkinnedMeshDispatchItem.cpp index 647a87a788..4b66c1d910 100644 --- a/Gems/Atom/Feature/Common/Code/Source/SkinnedMesh/SkinnedMeshDispatchItem.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/SkinnedMesh/SkinnedMeshDispatchItem.cpp @@ -81,19 +81,14 @@ namespace AZ RHI::PipelineStateDescriptorForDispatch pipelineStateDescriptor; shaderVariant.ConfigurePipelineState(pipelineStateDescriptor); - auto perInstanceSrgAsset = m_skinningShader->FindShaderResourceGroupAsset(AZ::Name{ "InstanceSrg" }); - if (!perInstanceSrgAsset.GetId().IsValid()) + auto perInstanceSrgLayout = m_skinningShader->FindShaderResourceGroupLayout(AZ::Name{ "InstanceSrg" }); + if (!perInstanceSrgLayout) { - AZ_Error("SkinnedMeshDispatchItem", false, "Failed to get shader resource group asset"); - return false; - } - else if (!perInstanceSrgAsset.IsReady()) - { - AZ_Error("SkinnedMeshDispatchItem", false, "Shader resource group asset is not loaded"); + AZ_Error("SkinnedMeshDispatchItem", false, "Failed to get shader resource group layout"); return false; } - m_instanceSrg = RPI::ShaderResourceGroup::Create(perInstanceSrgAsset); + m_instanceSrg = RPI::ShaderResourceGroup::Create(m_skinningShader->GetAsset(), m_skinningShader->GetSupervariantIndex(), perInstanceSrgLayout->GetName()); if (!m_instanceSrg) { AZ_Error("SkinnedMeshDispatchItem", false, "Failed to create shader resource group for skinned mesh"); diff --git a/Gems/Atom/RHI/Code/Include/Atom/RHI.Reflect/ShaderResourceGroupLayout.h b/Gems/Atom/RHI/Code/Include/Atom/RHI.Reflect/ShaderResourceGroupLayout.h index fd14cadde8..d7f79c209e 100644 --- a/Gems/Atom/RHI/Code/Include/Atom/RHI.Reflect/ShaderResourceGroupLayout.h +++ b/Gems/Atom/RHI/Code/Include/Atom/RHI.Reflect/ShaderResourceGroupLayout.h @@ -78,6 +78,14 @@ namespace AZ void SetName(const Name& name) { m_name = name; } const Name& GetName() const { return m_name; } + //! This string will be used at runtime for both ShaderResourceGroup and ShaderResourceGroupPool to + //! create a unique InstanceId to avoid redundant copies in memory. + const AZStd::string& GetUniqueId() const { return m_uniqueId; } + + //! The Set function as described above. + //! It is usually the Source azsl/azsli/srgi file where this SRG comes from. + void SetUniqueId(const AZStd::string& uniqueId) { m_uniqueId = uniqueId; } + /** * Designates this SRG as ShaderVariantKey fallback by providing the generated * shader constant name and its length in bits. @@ -277,6 +285,9 @@ namespace AZ //! Name of the ShaderResourceGroup as specified in the original *.azsl/*.azsli file. Name m_name; + //! Usually the AZSL file of origin/definition. + AZStd::string m_uniqueId; + AZStd::vector m_staticSamplers; AZStd::vector m_inputsForBuffers; @@ -319,5 +330,8 @@ namespace AZ /// The computed hash value. HashValue64 m_hash = HashValue64{ 0 }; }; + + // Suitable for functions that return a null const RHI::Ptr&. + static const RHI::Ptr NullSrgLayout; } } diff --git a/Gems/Atom/RHI/Code/Source/RHI.Reflect/ShaderResourceGroupLayout.cpp b/Gems/Atom/RHI/Code/Source/RHI.Reflect/ShaderResourceGroupLayout.cpp index 2c552d7c56..cbab90e166 100644 --- a/Gems/Atom/RHI/Code/Source/RHI.Reflect/ShaderResourceGroupLayout.cpp +++ b/Gems/Atom/RHI/Code/Source/RHI.Reflect/ShaderResourceGroupLayout.cpp @@ -22,8 +22,9 @@ namespace AZ if (SerializeContext* serializeContext = azrtti_cast(context)) { serializeContext->Class() - ->Version(7) + ->Version(8) // ATOM-15472 ->Field("m_name", &ShaderResourceGroupLayout::m_name) + ->Field("m_azslFileOfOrigin", &ShaderResourceGroupLayout::m_uniqueId) ->Field("m_staticSamplers", &ShaderResourceGroupLayout::m_staticSamplers) ->Field("m_inputsForBuffers", &ShaderResourceGroupLayout::m_inputsForBuffers) ->Field("m_inputsForImages", &ShaderResourceGroupLayout::m_inputsForImages) @@ -249,9 +250,9 @@ namespace AZ bool ShaderResourceGroupLayout::Finalize() { - if (!ValidateFinalizeState(ValidateFinalizeStateExpect::NotFinalized)) + if (IsFinalized()) { - return false; + return true; } if (m_bindingSlot.IsNull()) diff --git a/Gems/Atom/RPI/Assets/Shader/ImagePreview.azsl b/Gems/Atom/RPI/Assets/Shader/ImagePreview.azsl index d300216fd6..e67f2a7b04 100644 --- a/Gems/Atom/RPI/Assets/Shader/ImagePreview.azsl +++ b/Gems/Atom/RPI/Assets/Shader/ImagePreview.azsl @@ -12,7 +12,7 @@ #include -ShaderResourceGroup PassSrg : SRG_PerDraw +ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback { Texture2D m_image; Texture2DMS m_msImage; diff --git a/Gems/Atom/RPI/Assets/Shader/SceneAndViewSrgs.azsl b/Gems/Atom/RPI/Assets/Shader/SceneAndViewSrgs.azsl new file mode 100644 index 0000000000..d3084eca94 --- /dev/null +++ b/Gems/Atom/RPI/Assets/Shader/SceneAndViewSrgs.azsl @@ -0,0 +1,19 @@ +/* +* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or +* its licensors. +* +* For complete copyright and license terms please see the LICENSE at the root of this +* distribution (the "License"). All use of this software is governed by the License, +* or, if provided, by the license below or the license accompanying this file. Do not +* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* +*/ + +// This shader is not used for rendering. +// The only purpose of this shader is to have a shader asset that can be used +// at runtime to find the SceneSrg & ViewSrg layouts. + +#include +#include +#include diff --git a/Gems/Atom/RPI/Assets/Shader/SceneAndViewSrgs.shader b/Gems/Atom/RPI/Assets/Shader/SceneAndViewSrgs.shader new file mode 100644 index 0000000000..31a3ae8476 --- /dev/null +++ b/Gems/Atom/RPI/Assets/Shader/SceneAndViewSrgs.shader @@ -0,0 +1,39 @@ +{ + "Source" : "SceneAndViewSrgs.azsl", + + "DepthStencilState" : + { + "Depth" : + { + "Enable" : false + }, + "Stencil" : + { + "Enable" : false + } + }, + + "ProgramSettings": + { + "EntryPoints": + [ + { + "name": "MainVS", + "type": "Vertex" + }, + { + "name": "MainPS", + "type": "Fragment" + } + ] + }, + + "Supervariants": + [ + { + "Name": "", + "PlusArguments": "", + "MinusArguments": "--strip-unused-srgs" + } + ] +} diff --git a/Gems/Atom/RPI/Assets/ShaderLib/Atom/RPI/DummyEntryFunctions.azsli b/Gems/Atom/RPI/Assets/ShaderLib/Atom/RPI/DummyEntryFunctions.azsli new file mode 100644 index 0000000000..2a9d692de8 --- /dev/null +++ b/Gems/Atom/RPI/Assets/ShaderLib/Atom/RPI/DummyEntryFunctions.azsli @@ -0,0 +1,55 @@ +/* +* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or +* its licensors. +* +* For complete copyright and license terms please see the LICENSE at the root of this +* distribution (the "License"). All use of this software is governed by the License, +* or, if provided, by the license below or the license accompanying this file. Do not +* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* +*/ + +// This file is included by .AZSL files that are used to define ShaderResourceGroups. +// The idea is that .shader files require entry function definitions to compile. +// This file provides dummy, yet valid, entry points for all kinds of shaders. + +/////////////////////////////////////////////////////////////////////////////// +// Dummy Structures +/////////////////////////////////////////////////////////////////////////////// +struct VSInput +{ + float3 m_position : POSITION; +}; + +struct VSOutput +{ + float4 m_position : SV_Position; +}; + +struct PSOutput +{ + float4 m_color : SV_Target0; +}; + +/////////////////////////////////////////////////////////////////////////////// +// Entry Functions +/////////////////////////////////////////////////////////////////////////////// +VSOutput MainVS(VSInput IN) +{ + VSOutput OUT; + OUT.m_position = float4(IN.m_position, 1.0); + return OUT; +} + +PSOutput MainPS(VSOutput IN) +{ + PSOutput OUT; + OUT.m_color = IN.m_position; + return OUT; +} + +[numthreads(8,8,1)] +void MainCS(uint3 dispatch_id: SV_DispatchThreadID) +{ +} diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Common/AssetUtils.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Common/AssetUtils.h index 554d20dede..86c381e2ec 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Common/AssetUtils.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Common/AssetUtils.h @@ -15,7 +15,6 @@ #include #include -#include #include namespace AZ @@ -42,8 +41,6 @@ namespace AZ template Outcome> LoadAsset(const AZ::Data::AssetId& assetId); - uint32_t CalcSrgProductSubId(const Name& srgName); - //! Attempts to resolve the full path to a product asset given its ID AZStd::string GetProductPathByAssetId(const AZ::Data::AssetId& assetId); diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderSourceData.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderSourceData.h index 428898a17e..64b60ada17 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderSourceData.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderSourceData.h @@ -39,7 +39,6 @@ namespace AZ AZ_CLASS_ALLOCATOR(ShaderSourceData, AZ::SystemAllocator, 0); static constexpr char Extension[] = "shader"; - static constexpr char Extension2[] = "shader2"; static void Reflect(ReflectContext* context); diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator.h index fbe97c592a..8538db48a9 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator.h @@ -19,7 +19,7 @@ namespace AZ { namespace RPI { - //! The "builder" pattern class that creates a ShaderVariantAsset. + //! The "builder" pattern class that creates a ShaderVariantAsset2. class ShaderVariantAssetCreator final : public AssetCreator { @@ -32,7 +32,7 @@ namespace AZ //! It is still useful, because when creating the Root Variant for the ShaderAsset this assetId should //! match the value that will be assigned by the asset processor because the Root Variant is serialized //! as a Data::Asset inside the ShaderAsset. - void Begin(const AZ::Data::AssetId& assetId, const ShaderVariantId& shaderVariantId, RPI::ShaderVariantStableId stableId, const ShaderOptionGroupLayout* shaderOptionGroupLayout); + void Begin(const AZ::Data::AssetId& assetId, const ShaderVariantId& shaderVariantId, RPI::ShaderVariantStableId stableId, bool isFullyBaked); //! Finalizes and assigns ownership of the asset to result, if successful. //! Otherwise false is returned and result is left untouched. @@ -41,24 +41,13 @@ namespace AZ ///////////////////////////////////////////////////////////////////// // Methods for all shader variant types - //! Set the timestamp value of ShaderAsset that matches this ShaderVariantAsset. + //! Set the timestamp value when the ProcessJob() started. //! This is needed to synchronize between the ShaderAsset and ShaderVariantAsset when hot-reloading shaders. - void SetShaderAssetBuildTimestamp(AZStd::sys_time_t shaderAssetBuildTimestamp); + //! The idea is that this timestamp must be greater or equal than the ShaderAsset. + void SetBuildTimestamp(AZStd::sys_time_t buildTimestamp); //! Assigns a shaderStageFunction, which contains the byte code, to the slot dictated by the shader stage. void SetShaderFunction(RHI::ShaderStage shaderStage, RHI::Ptr shaderStageFunction); - - ///////////////////////////////////////////////////////////////////// - // Methods for PipelineStateType::Draw variants. - - //! Assigns the contract for inputs required by the shader. - void SetInputContract(const ShaderInputContract& contract); - - //! Assigns the contract for outputs required by the shader. - void SetOutputContract(const ShaderOutputContract& contract); - - //! Assigns the render states for the draw pipeline. Ignored for non-draw pipelines. - void SetRenderStates(const RHI::RenderStates& renderStates); }; } // namespace RPI diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator2.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator2.h deleted file mode 100644 index 07cec9a01f..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator2.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include -#include -#include - -namespace AZ -{ - namespace RPI - { - //! The "builder" pattern class that creates a ShaderVariantAsset2. - class ShaderVariantAssetCreator2 final - : public AssetCreator - { - public: - //! Begins construction of the shader variant asset. - //! @param assetId The "initial" assetId that the resulting ShaderVariantAsset will get. - //! "initial" was quoted because in the end the asset processor will assign another assetId - //! because on the UUID of the source asset (a *.shadervariantlist file) and the product subid - //! that gets assign when returning the Job Response. - //! It is still useful, because when creating the Root Variant for the ShaderAsset this assetId should - //! match the value that will be assigned by the asset processor because the Root Variant is serialized - //! as a Data::Asset inside the ShaderAsset. - void Begin(const AZ::Data::AssetId& assetId, const ShaderVariantId& shaderVariantId, RPI::ShaderVariantStableId stableId, bool isFullyBaked); - - //! Finalizes and assigns ownership of the asset to result, if successful. - //! Otherwise false is returned and result is left untouched. - bool End(Data::Asset& result); - - ///////////////////////////////////////////////////////////////////// - // Methods for all shader variant types - - //! Set the timestamp value when the ProcessJob() started. - //! This is needed to synchronize between the ShaderAsset and ShaderVariantAsset when hot-reloading shaders. - //! The idea is that this timestamp must be greater or equal than the ShaderAsset. - void SetBuildTimestamp(AZStd::sys_time_t buildTimestamp); - - //! Assigns a shaderStageFunction, which contains the byte code, to the slot dictated by the shader stage. - void SetShaderFunction(RHI::ShaderStage shaderStage, RHI::Ptr shaderStageFunction); - - }; - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantListSourceData.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantListSourceData.h index c284627cc5..eaef4e093b 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantListSourceData.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Edit/Shader/ShaderVariantListSourceData.h @@ -30,7 +30,6 @@ namespace AZ AZ_CLASS_ALLOCATOR(ShaderVariantListSourceData, AZ::SystemAllocator, 0); static constexpr const char* Extension = "shadervariantlist"; - static constexpr const char* Extension2 = "shadervariantlist2"; static void Reflect(ReflectContext* context); diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/DynamicDraw/DynamicDrawContext.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/DynamicDraw/DynamicDrawContext.h index 81b23068a1..d9afc54809 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/DynamicDraw/DynamicDrawContext.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/DynamicDraw/DynamicDrawContext.h @@ -219,7 +219,7 @@ namespace AZ Data::Instance m_srgPerContext; RHI::ShaderResourceGroup* m_srgGroups[1]; // array for draw item's srg groups uint32_t m_perVertexDataSize = 0; - Data::Asset m_drawSrgAsset; + RHI::Ptr m_drawSrgLayout; bool m_hasShaderVariantKeyFallbackEntry = false; // Draw variations allowed in this DynamicDrawContext diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RPISystem.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RPISystem.h index ff3c784a51..c5df3efc0e 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RPISystem.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RPISystem.h @@ -77,8 +77,9 @@ namespace AZ ScenePtr GetScene(const SceneId& sceneId) const override; ScenePtr GetDefaultScene() const override; RenderPipelinePtr GetRenderPipelineForWindow(AzFramework::NativeWindowHandle windowHandle) override; - Data::Asset GetSceneSrgAsset() const override; - Data::Asset GetViewSrgAsset() const override; + Data::Asset GetCommonShaderAssetForSrgs() const override; + RHI::Ptr GetSceneSrgLayout() const override; + RHI::Ptr GetViewSrgLayout() const override; void SimulationTick() override; void RenderTick() override; void SetSimulationJobPolicy(RHI::JobPolicy jobPolicy) override; @@ -130,8 +131,11 @@ namespace AZ RPISystemDescriptor m_descriptor; - Data::Asset m_sceneSrgAsset; - Data::Asset m_viewSrgAsset; + // Reference to the shader asset that is used + // to get the layout for SceneSrg (@m_sceneSrgLayout) and ViewSrg (@m_viewSrgLayout). + Data::Asset m_commonShaderAssetForSrgs; + RHI::Ptr m_sceneSrgLayout; + RHI::Ptr m_viewSrgLayout; bool m_systemAssetsInitialized = false; diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RPISystemInterface.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RPISystemInterface.h index c2ceca73a9..c7934501e9 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RPISystemInterface.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RPISystemInterface.h @@ -13,6 +13,7 @@ #include #include +#include #include @@ -58,9 +59,12 @@ namespace AZ //! Get the render pipeline created for a window virtual RenderPipelinePtr GetRenderPipelineForWindow(AzFramework::NativeWindowHandle windowHandle) = 0; - virtual Data::Asset GetSceneSrgAsset() const = 0; + //! Returns the shader asset that is being used as the source for the SceneSrg and ViewSrg layouts. + virtual Data::Asset GetCommonShaderAssetForSrgs() const = 0; - virtual Data::Asset GetViewSrgAsset() const = 0; + virtual RHI::Ptr GetSceneSrgLayout() const = 0; + + virtual RHI::Ptr GetViewSrgLayout() const = 0; //! Tick for graphics simulation that runs on the CPU. //! This will drive FeatureProcessor simulation activity. It should be called once per game-tick. diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RenderPipeline.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RenderPipeline.h index 5595c1d2ac..26979e4388 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RenderPipeline.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/RenderPipeline.h @@ -19,7 +19,6 @@ #include #include -#include #include #include diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/Shader.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/Shader.h index a81a3a99eb..938c8c06b1 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/Shader.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/Shader.h @@ -60,15 +60,21 @@ namespace AZ { friend class ShaderSystem; public: - AZ_INSTANCE_DATA(Shader, "{3576FF16-C3C5-48A6-9388-C3628A231BC3}"); + AZ_INSTANCE_DATA(Shader, "{232D8BD6-3BD4-4842-ABD2-F380BD5B0863}"); AZ_CLASS_ALLOCATOR(Shader, SystemAllocator, 0); /// Returns the shader instance associated with the provided asset. + static Data::Instance FindOrCreate(const Data::Asset& shaderAsset, const Name& supervariantName); + + /// Same as above, but uses the default supervariant static Data::Instance FindOrCreate(const Data::Asset& shaderAsset); ~Shader(); AZ_DISABLE_COPY_MOVE(Shader); + /// returns the SupervariantIndex that corresponds to the given supervariant name given at instantiation. + SupervariantIndex GetSupervariantIndex() { return m_supervariantIndex; } + /// Constructs a shader option group suitable to generate a shader variant key for this shader. ShaderOptionGroup CreateShaderOptionGroup() const; @@ -104,21 +110,27 @@ namespace AZ /// Returns the pipeline state type generated by variants of this shader. RHI::PipelineStateType GetPipelineStateType() const; + + //! Returns the ShaderInputContract which describes which inputs the shader requires + const ShaderInputContract& GetInputContract() const; + + //! Returns the ShaderOutputContract which describes which outputs the shader requires + const ShaderOutputContract& GetOutputContract() const; /// Acquires a pipeline state directly from a descriptor. const RHI::PipelineState* AcquirePipelineState(const RHI::PipelineStateDescriptor& descriptor) const; /// Finds and returns the shader resource group asset with the requested name. Returns an empty handle if no matching group was found. - const Data::Asset& FindShaderResourceGroupAsset(const Name& shaderResourceGroupName) const; + const RHI::Ptr& FindShaderResourceGroupLayout(const Name& shaderResourceGroupName) const; /// Finds and returns the shader resource group asset associated with the requested binding slot. Returns an empty handle if no matching group was found. - const Data::Asset& FindShaderResourceGroupAsset(uint32_t bindingSlot) const; + const RHI::Ptr& FindShaderResourceGroupLayout(uint32_t bindingSlot) const; /// Finds and returns the shader resource group asset designated as a ShaderVariantKey fallback. - const Data::Asset& FindFallbackShaderResourceGroupAsset() const; + const RHI::Ptr& FindFallbackShaderResourceGroupLayout() const; /// Returns the set of shader resource groups referenced by all variants in the shader asset. - AZStd::array_view> GetShaderResourceGroupAssets() const; + AZStd::array_view> GetShaderResourceGroupLayouts() const; /// Returns a reference to the asset used to initialize this shader. const Data::Asset& GetAsset() const; @@ -128,9 +140,10 @@ namespace AZ RHI::DrawListTag GetDrawListTag() const; private: - Shader() = default; + explicit Shader(const SupervariantIndex& supervariantIndex) : m_supervariantIndex(supervariantIndex){}; + Shader() = delete; - static Data::Instance CreateInternal(ShaderAsset& shaderAsset); + static Data::Instance CreateInternal(ShaderAsset& shaderAsset, const AZStd::any* supervariantName); RHI::ResultCode Init(ShaderAsset& shaderAsset); @@ -150,16 +163,23 @@ namespace AZ void OnShaderVariantAssetReady(Data::Asset shaderVariantAsset, bool IsError) override; /////////////////////////////////////////////////////////////////// - /// Returns the path to the pipeline library cache file. + //! Returns the path to the pipeline library cache file. AZStd::string GetPipelineLibraryPath() const; - /// The pipeline state type required by this shader. + //! A strong reference to the shader asset. + Data::Asset m_asset; + + //! Selects current supervariant to be used. + //! This value is defined at instantiation. + SupervariantIndex m_supervariantIndex; + + //! The pipeline state type required by this shader. RHI::PipelineStateType m_pipelineStateType = RHI::PipelineStateType::Draw; - /// A cached pointer to the pipeline state cache owned by RHISystem. + //! A cached pointer to the pipeline state cache owned by RHISystem. RHI::PipelineStateCache* m_pipelineStateCache = nullptr; - /// A handle to the pipeline library in the pipeline state cache. + //! A handle to the pipeline library in the pipeline state cache. RHI::PipelineLibraryHandle m_pipelineLibraryHandle; //! Used for thread safety for FindVariantStableId() and GetVariant(). @@ -168,14 +188,11 @@ namespace AZ //! The root variant always exist. ShaderVariant m_rootVariant; - /// Local cache of ShaderVariants (except for the root variant), searchable by StableId. - /// Gets populated when GetVariant() is called. + //! Local cache of ShaderVariants (except for the root variant), searchable by StableId. + //! Gets populated when GetVariant() is called. AZStd::unordered_map m_shaderVariants; - - /// A strong reference to the shader asset. - Data::Asset m_asset; - // DrawListTag associated with this shader. + //! DrawListTag associated with this shader. RHI::DrawListTag m_drawListTag; }; } diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/Shader2.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/Shader2.h deleted file mode 100644 index eb82c2d31a..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/Shader2.h +++ /dev/null @@ -1,194 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include - -#include -#include -#include - -#include -#include - -#include - -#include - -namespace AZ -{ - namespace RHI - { - class PipelineStateCache; - } - - namespace RPI - { - /** - * Shader2 is effectively an 'uber-shader' containing a collection of 'variants'. Variants are - * designed to be 'variations' on the same core shader technique. To enforce this, every variant - * in the shader shares the same pipeline layout (i.e. set of shader resource groups). - * - * A shader owns a library of pipeline states. When a variant is resolved to a pipeline state, its - * lifetime is determined by the lifetime of the Shader2 (unless an explicit reference is taken). If - * an asset reload event occurs, the pipeline state cache is reset. - * - * To use Shader2: - * 1) Construct a ShaderOptionGroup instance using CreateShaderOptionGroup. - * 2) Configure the group by setting values on shader options. - * 3) Find the ShaderVariantStableId using the ShaderVariantId generated from the configured ShaderOptionGroup. - * 4) Acquire the ShaderVariant2 instance using the ShaderVariantStableId. - * 5) Configure a pipeline state descriptor on the variant; make local overrides as necessary (e.g. to configure runtime render state). - * 6) Acquire a RHI::PipelineState instance from the shader using the configured pipeline state descriptor. - * - * Remember that the returned RHI::PipelineState instance lifetime is tied to the Shader2 lifetime. - * If you need guarantee lifetime, it is safe to take a reference on the returned pipeline state. - */ - class Shader2 final - : public Data::InstanceData - , public Data::AssetBus::Handler - , public ShaderVariantFinderNotificationBus2::Handler - { - friend class ShaderSystem; - public: - AZ_INSTANCE_DATA(Shader2, "{232D8BD6-3BD4-4842-ABD2-F380BD5B0863}"); - AZ_CLASS_ALLOCATOR(Shader2, SystemAllocator, 0); - - /// Returns the shader instance associated with the provided asset. - static Data::Instance FindOrCreate(const Data::Asset& shaderAsset, const Name& supervariantName); - - ~Shader2(); - AZ_DISABLE_COPY_MOVE(Shader2); - - /// Constructs a shader option group suitable to generate a shader variant key for this shader. - ShaderOptionGroup CreateShaderOptionGroup() const; - - /// Finds the best matching ShaderVariant2 for the given shaderVariantId, - /// If the variant is loaded and ready it will return the corresponding ShaderVariant2. - /// If the variant is not yet available it will return the root ShaderVariant2. - /// Callers should listen to ShaderReloadNotificationBus to get notified whenever the exact - /// variant is loaded and available or if a variant changes, etc. - /// This function should be your one stop shop to get a ShaderVariant2 from a ShaderVariantId. - /// Alternatively: You can call FindVariantStableId() followed by GetVariant(shaderVariantStableId). - const ShaderVariant2& GetVariant(const ShaderVariantId& shaderVariantId); - - /// Finds the best matching shader variant asset and returns its StableId. - /// In cases where you can't cache the ShaderVariant2, and recurrently you may need - /// the same ShaderVariant2 at different times, then it can be convenient (and more performant) to call - /// this method to cache the ShaderVariantStableId and call GetVariant(ShaderVariantStableId) - /// when needed. - /// If the asset is not immediately found in the file system, it will return the StableId - /// of the root variant. - /// Callers should listen to ShaderReloadNotificationBus to get notified whenever the exact - /// variant is loaded and available or if a variant changes, etc. - ShaderVariantSearchResult FindVariantStableId(const ShaderVariantId& shaderVariantId) const; - - /// Returns the variant associated with the provided StableId. - /// You should call FindVariantStableId() which caches the variant, later - /// when this function is called the variant is fetched from a local map. - /// If the variant is not found, the root variant is returned. - /// "Alternatively: a more convenient approach is to call GetVariant(ShaderVariantId) which does both, the find and the get." - const ShaderVariant2& GetVariant(ShaderVariantStableId shaderVariantStableId); - - /// Convenient function that returns the root variant. - const ShaderVariant2& GetRootVariant(); - - /// Returns the pipeline state type generated by variants of this shader. - RHI::PipelineStateType GetPipelineStateType() const; - - //! Returns the ShaderInputContract which describes which inputs the shader requires - const ShaderInputContract& GetInputContract() const; - - //! Returns the ShaderOutputContract which describes which outputs the shader requires - const ShaderOutputContract& GetOutputContract() const; - - /// Acquires a pipeline state directly from a descriptor. - const RHI::PipelineState* AcquirePipelineState(const RHI::PipelineStateDescriptor& descriptor) const; - - /// Finds and returns the shader resource group asset with the requested name. Returns an empty handle if no matching group was found. - const RHI::Ptr FindShaderResourceGroupLayout(const Name& shaderResourceGroupName) const; - - /// Finds and returns the shader resource group asset associated with the requested binding slot. Returns an empty handle if no matching group was found. - const RHI::Ptr FindShaderResourceGroupLayout(uint32_t bindingSlot) const; - - /// Finds and returns the shader resource group asset designated as a ShaderVariantKey fallback. - const RHI::Ptr FindFallbackShaderResourceGroupLayout() const; - - /// Returns the set of shader resource groups referenced by all variants in the shader asset. - AZStd::array_view> GetShaderResourceGroupLayouts() const; - - /// Returns a reference to the asset used to initialize this shader. - const Data::Asset& GetAsset() const; - - //! Returns the DrawListTag that identifies which Pass and View objects will process this shader. - //! This tag corresponds to the ShaderAsset2 object's DrawListName. - RHI::DrawListTag GetDrawListTag() const; - - private: - Shader2() = default; - - static Data::Instance CreateInternal(ShaderAsset2& shaderAsset); - - bool SelectSupervariant(const Name& supervariantName); - - RHI::ResultCode Init(ShaderAsset2& shaderAsset); - - void Shutdown(); - - ConstPtr LoadPipelineLibrary() const; - void SavePipelineLibrary() const; - - /////////////////////////////////////////////////////////////////// - /// AssetBus overrides - void OnAssetReloaded(Data::Asset asset) override; - /////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////// - /// ShaderVariantFinderNotificationBus overrides - void OnShaderVariantTreeAssetReady(Data::Asset /*shaderVariantTreeAsset*/, bool /*isError*/) override {}; - void OnShaderVariantAssetReady(Data::Asset shaderVariantAsset, bool IsError) override; - /////////////////////////////////////////////////////////////////// - - //! Returns the path to the pipeline library cache file. - AZStd::string GetPipelineLibraryPath() const; - - //! A strong reference to the shader asset. - Data::Asset m_asset; - - //! Selects current supervariant to be used. - //! This value is defined at instantiation. - SupervariantIndex m_supervariantIndex; - - //! The pipeline state type required by this shader. - RHI::PipelineStateType m_pipelineStateType = RHI::PipelineStateType::Draw; - - //! A cached pointer to the pipeline state cache owned by RHISystem. - RHI::PipelineStateCache* m_pipelineStateCache = nullptr; - - //! A handle to the pipeline library in the pipeline state cache. - RHI::PipelineLibraryHandle m_pipelineLibraryHandle; - - //! Used for thread safety for FindVariantStableId() and GetVariant(). - AZStd::shared_mutex m_variantCacheMutex; - - //! The root variant always exist. - ShaderVariant2 m_rootVariant; - - //! Local cache of ShaderVariants (except for the root variant), searchable by StableId. - //! Gets populated when GetVariant() is called. - AZStd::unordered_map m_shaderVariants; - - //! DrawListTag associated with this shader. - RHI::DrawListTag m_drawListTag; - }; - } -} diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus.h index 58b9809e2b..769ada0293 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus.h @@ -47,7 +47,8 @@ namespace AZ virtual void OnShaderReinitialized(const Shader& shader) { AZ_UNUSED(shader); } //! Called when a particular shader variant is reinitialized. - virtual void OnShaderVariantReinitialized(const Shader& shader, const ShaderVariantId& shaderVariantId, ShaderVariantStableId shaderVariantStableId) { AZ_UNUSED(shader); AZ_UNUSED(shaderVariantId); AZ_UNUSED(shaderVariantStableId); } + virtual void OnShaderVariantReinitialized(const Shader& shader, const ShaderVariantId& shaderVariantId, ShaderVariantStableId shaderVariantStableId) + { AZ_UNUSED(shader); AZ_UNUSED(shaderVariantId); AZ_UNUSED(shaderVariantStableId) } }; typedef EBus ShaderReloadNotificationBus; diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus2.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus2.h deleted file mode 100644 index 0822336ffa..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus2.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include -#include - -//#include -#include - -namespace AZ -{ - namespace RPI - { - class Shader2; - class ShaderAsset2; - - /** - * Connect to this EBus to get notifications whenever a Data::Instance reloads its ShaderAsset. - * The bus address is the AssetId of the ShaderAsset. - */ - class ShaderReloadNotifications2 - : public EBusTraits - { - - public: - ////////////////////////////////////////////////////////////////////////// - // EBusTraits overrides - static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::ById; - typedef Data::AssetId BusIdType; - ////////////////////////////////////////////////////////////////////////// - - virtual ~ShaderReloadNotifications2() {} - - //! Called when the ShaderAsset reinitializes itself in response to another asset being reloaded. - virtual void OnShaderAssetReinitialized(const Data::Asset& shaderAsset) { AZ_UNUSED(shaderAsset); } - - //! Called when the Shader instance reinitializes itself in response to the ShaderAsset being reloaded. - virtual void OnShaderReinitialized(const Shader2& shader) { AZ_UNUSED(shader); } - - //! Called when a particular shader variant is reinitialized. - virtual void OnShaderVariantReinitialized(const Shader2& shader, const ShaderVariantId& shaderVariantId, ShaderVariantStableId shaderVariantStableId) - { AZ_UNUSED(shader); AZ_UNUSED(shaderVariantId); AZ_UNUSED(shaderVariantStableId) } - }; - - typedef EBus ShaderReloadNotificationBus2; - - } // namespace RPI -} //namespace AZ diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderResourceGroup.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderResourceGroup.h index d99b8f51b5..fb2b443ca5 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderResourceGroup.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderResourceGroup.h @@ -12,9 +12,7 @@ #pragma once #include -#include #include -#include #include #include @@ -25,6 +23,7 @@ #include #include +#include #include namespace AZ @@ -55,19 +54,15 @@ namespace AZ : public AZ::Data::InstanceData { friend class ShaderSystem; + friend class ShaderResourceGroupPool; + public: AZ_INSTANCE_DATA(ShaderResourceGroup, "{88B52D0C-9CBF-4B4D-B9E2-180BA602E1EA}"); AZ_CLASS_ALLOCATOR(ShaderResourceGroup, AZ::SystemAllocator, 0); - /// Instantiates or returns an existing streaming image instance using its paired asset. - static Data::Instance FindOrCreate(const Data::Asset& srgAsset); - - /// Instantiates a unique shader resource group instance using its paired asset. - static Data::Instance Create(const Data::Asset& srgAsset); - - /// [GFX TODO] [ATOM-15472] Shader Build Pipeline: Remove Deprecated Files And Functions That Predate The Shader Supervariants - /// This is a temporary hack to enable integration of the new supervariant system. - bool ReplaceSrgLayoutUsingShaderAsset(Data::Asset shaderAsset, const Name& supervariantName, const Name& srgName); + /// Instantiates a unique shader resource group instance using its paired asset but with a random InstanceId. + static Data::Instance Create( + const Data::Asset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName); /// Queues a request that the underlying hardware shader resource group be compiled. void Compile(); @@ -84,8 +79,8 @@ namespace AZ RHI::ShaderInputBufferUnboundedArrayIndex FindShaderInputBufferUnboundedArrayIndex(const Name& name) const; RHI::ShaderInputImageUnboundedArrayIndex FindShaderInputImageUnboundedArrayIndex(const Name& name) const; - /// Returns the parent shader resource group asset. - const Data::Asset& GetAsset() const; + /// Returns the parent shader shader asset where the SRG layout data came from. + /// const Data::Asset& GetAsset() const; /// Returns the RHI shader resource group layout. const RHI::ShaderResourceGroupLayout* GetLayout() const; @@ -283,9 +278,34 @@ namespace AZ private: ShaderResourceGroup() = default; - RHI::ResultCode Init(ShaderResourceGroupAsset& shaderResourceGroupAsset); + //! Will be passed as AZStd::any to CreateInternal. + //! The data comes from the same parameters of ::Create() or ::FindOrCreate(). + struct SrgInitParams + { + AZ_TYPE_INFO(SrgInitParams, "{FDBDDB75-3DE6-4383-8D19-C0092246A411}"); + SupervariantIndex m_supervariantIndex; + AZ::Name m_srgName; + }; - static AZ::Data::Instance CreateInternal(ShaderResourceGroupAsset& srgAsset); + //! Usually subclasses of AZ::Data::InstanceData leverage the AssetId of the given asset as a means to define + //! the AZ::Data::InstanceId. This works well when there's a one-to-one relationship between the Asset and the InstanceData. + //! + //! ShaderResourceGroup & ShaderResourceGroupPool are different because one ShaderAsset can have several + //! ShaderResourceGroupLayouts defined in it. This means that using only the AssetId is not sufficient. + //! + //! This function searches the ShaderResourceGroupLayout of the given @srgName in the @shaderAsset. If it finds such + //! ShaderResourceGroupLayout it makes an InstanceId based on: + //! - The azsl file of origin where the ShaderResourceGroup was defined. + //! - The supervariant index. + //! - The name of the srg. + //! @param shaderAsset: The shader asset where the ShaderResourceGroupLayout will be searched. + //! @param supervariantIndex: The supervariant index in @shaderAsset where the search will be conducted. + //! @param srgName: Name of the ShaderResourceGroup as it was declared in the azsl file of origin. + static Data::InstanceId MakeInstanceId(const Data::Asset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName); + + RHI::ResultCode Init(ShaderAsset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName); + + static AZ::Data::Instance CreateInternal(ShaderAsset& shaderAsset, const AZStd::any* srgInitParams); /// A name to be used in error messages static const char* s_traceCategoryName; @@ -296,6 +316,9 @@ namespace AZ /// Allows us to return const& to a null Buffer static const Data::Instance s_nullBuffer; + /// If true, Init() was called and was successful. + bool m_isInitialized = false; + /// Pool for allocating RHI::ShaderResourceGroup objects Data::Instance m_pool; @@ -306,10 +329,7 @@ namespace AZ RHI::Ptr m_shaderResourceGroup; /// A reference to the SRG asset used to initialize and manipulate this group. - AZ::Data::Asset m_asset; - - /// A reference to the shader asset used to initialize and manipulate this group. - AZ::Data::Asset m_shaderAsset; + AZ::Data::Asset m_asset; /// A pointer to the layout inside of m_srgAsset const RHI::ShaderResourceGroupLayout* m_layout = nullptr; diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderResourceGroupPool.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderResourceGroupPool.h index 90324f2831..a3aecfe1f6 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderResourceGroupPool.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderResourceGroupPool.h @@ -12,9 +12,10 @@ #pragma once -#include #include #include +#include + namespace AZ { @@ -46,10 +47,11 @@ namespace AZ AZ_CLASS_ALLOCATOR(ShaderResourceGroupPool, AZ::SystemAllocator, 0); /** - * Instantiates or returns an existing runtime pool for a given ShaderResourceGroupAsset. + * Instantiates or returns an existing runtime pool for a given ShaderResourceGroup. * @param shaderResourceGroupPoolAsset The asset used to instantiate an instance of the streaming image pool. */ - static Data::Instance FindOrCreate(const Data::Asset& srgAsset); + static Data::Instance FindOrCreate( + const Data::Asset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName); RHI::Ptr CreateRHIShaderResourceGroup(); @@ -60,8 +62,10 @@ namespace AZ ShaderResourceGroupPool() = default; // Standard RPI runtime instance initialization - static Data::Instance CreateInternal(ShaderResourceGroupAsset& srgAsset); - RHI::ResultCode Init(ShaderResourceGroupAsset& srgAsset); + // @param anySrgInitParams Of Type RPI::ShaderResourceGroup::SrgInitParams. + static Data::Instance CreateInternal(ShaderAsset& shaderAsset, const AZStd::any* anySrgInitParams); + + RHI::ResultCode Init(ShaderAsset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName); RHI::Ptr m_pool; }; diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariant.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariant.h index d189d26b13..bd02d03787 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariant.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariant.h @@ -33,12 +33,6 @@ namespace AZ //! this does not fill the InputStreamLayout or OutputAttachmentLayout as that also requires //! information from the mesh data and pass system and must be done as a separate step). void ConfigurePipelineState(RHI::PipelineStateDescriptor& descriptor) const; - - //! Returns the ShaderInputContract which describes which inputs the shader requires - const ShaderInputContract& GetInputContract() const; - - //! Returns the ShaderOutputContract which describes which outputs the shader requires - const ShaderOutputContract& GetOutputContract() const; const ShaderVariantId& GetShaderVariantId() const { return m_shaderVariantAsset->GetShaderVariantId(); } @@ -47,9 +41,10 @@ namespace AZ //! If the shader variant is not fully baked, the ShaderVariantKeyFallbackValue must be correctly set when drawing. bool IsFullyBaked() const { return m_shaderVariantAsset->IsFullyBaked(); } - //! Return the timestamp when the associated ShaderAsset was built. + //! Return the timestamp when this asset was built. //! This is used to synchronize versions of the ShaderAsset and ShaderVariantAsset, especially during hot-reload. - AZStd::sys_time_t GetShaderAssetBuildTimestamp() const { return m_shaderVariantAsset->GetShaderAssetBuildTimestamp(); } + //! This timestamp must be >= than the ShaderAsset timestamp. + AZStd::sys_time_t GetBuildTimestamp() const { return m_shaderVariantAsset->GetBuildTimestamp(); } bool IsRootVariant() const { return m_shaderVariantAsset->IsRootVariant(); } @@ -59,7 +54,8 @@ namespace AZ // Called by Shader. Initializes runtime data from asset data. Returns whether the call succeeded. bool Init( const ShaderAsset& shaderAsset, - Data::Asset shaderVariantAsset); + Data::Asset shaderVariantAsset, + SupervariantIndex supervariantIndex); // Cached state from the asset to avoid an indirection. RHI::PipelineStateType m_pipelineStateType = RHI::PipelineStateType::Count; @@ -68,6 +64,8 @@ namespace AZ RHI::ConstPtr m_pipelineLayoutDescriptor; Data::Asset m_shaderVariantAsset; + + const RHI::RenderStates* m_renderStates = nullptr; // Cached from ShaderAsset. }; } } diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariant2.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariant2.h deleted file mode 100644 index 524ebf6a3c..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariant2.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include - -#include - -namespace AZ -{ - namespace RPI - { - //! Represents the concrete state to configure a PipelineStateDescriptor. ShaderVariant2's match - //! the RHI::PipelineStateType of the parent Shader instance. For shaders on the raster - //! pipeline, the RHI::DrawFilterTag is also provided. - class ShaderVariant2 final - { - friend class Shader2; - public: - ShaderVariant2() = default; - AZ_DEFAULT_COPY_MOVE(ShaderVariant2); - - //! Fills a pipeline state descriptor with settings provided by the ShaderVariant2. (Note that - //! this does not fill the InputStreamLayout or OutputAttachmentLayout as that also requires - //! information from the mesh data and pass system and must be done as a separate step). - void ConfigurePipelineState(RHI::PipelineStateDescriptor& descriptor) const; - - const ShaderVariantId& GetShaderVariantId() const { return m_shaderVariantAsset->GetShaderVariantId(); } - - //! Returns whether the variant is fully baked variant (all options are static branches), or false if the - //! variant uses dynamic branches for some shader options. - //! If the shader variant is not fully baked, the ShaderVariantKeyFallbackValue must be correctly set when drawing. - bool IsFullyBaked() const { return m_shaderVariantAsset->IsFullyBaked(); } - - //! Return the timestamp when this asset was built. - //! This is used to synchronize versions of the ShaderAsset and ShaderVariantAsset, especially during hot-reload. - //! This timestamp must be >= than the ShaderAsset timestamp. - AZStd::sys_time_t GetBuildTimestamp() const { return m_shaderVariantAsset->GetBuildTimestamp(); } - - bool IsRootVariant() const { return m_shaderVariantAsset->IsRootVariant(); } - - ShaderVariantStableId GetStableId() const { return m_shaderVariantAsset->GetStableId(); } - - private: - // Called by Shader. Initializes runtime data from asset data. Returns whether the call succeeded. - bool Init( - const ShaderAsset2& shaderAsset, - Data::Asset shaderVariantAsset, - SupervariantIndex supervariantIndex); - - // Cached state from the asset to avoid an indirection. - RHI::PipelineStateType m_pipelineStateType = RHI::PipelineStateType::Count; - - // State assigned to the pipeline state descriptor. - RHI::ConstPtr m_pipelineLayoutDescriptor; - - Data::Asset m_shaderVariantAsset; - - const RHI::RenderStates* m_renderStates = nullptr; // Cached from ShaderAsset2. - }; - } -} diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariantAsyncLoader.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariantAsyncLoader.h index 9960e6bbe0..3cb76648fb 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariantAsyncLoader.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/Shader/ShaderVariantAsyncLoader.h @@ -40,29 +40,37 @@ namespace AZ void Init(); void Shutdown(); - struct PairOfShaderAssetAndShaderVariantId + struct TupleShaderAssetAndShaderVariantId { Data::Asset m_shaderAsset; ShaderVariantId m_shaderVariantId; + SupervariantIndex m_supervariantIndex; - bool operator==(const PairOfShaderAssetAndShaderVariantId& anotherPair) const + bool operator==(const TupleShaderAssetAndShaderVariantId& anotherTuple) const { - return (m_shaderAsset.GetId() == anotherPair.m_shaderAsset.GetId() && m_shaderVariantId == anotherPair.m_shaderVariantId); + return ( + (m_shaderAsset.GetId() == anotherTuple.m_shaderAsset.GetId()) && + (m_shaderVariantId == anotherTuple.m_shaderVariantId) && + (m_supervariantIndex == anotherTuple.m_supervariantIndex) + ); } }; /////////////////////////////////////////////////////////////////// // IShaderVariantFinder overrides - bool QueueLoadShaderVariantAssetByVariantId(Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId) override; + bool QueueLoadShaderVariantAssetByVariantId(Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) override; bool QueueLoadShaderVariantTreeAsset(const Data::AssetId& shaderAssetId) override; - bool QueueLoadShaderVariantAsset(const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId) override; + bool QueueLoadShaderVariantAsset(const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId, SupervariantIndex supervariantIndex) override; Data::Asset GetShaderVariantAssetByVariantId( - Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId) override; + Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) override; Data::Asset GetShaderVariantAssetByStableId( - Data::Asset shaderAsset, ShaderVariantStableId shaderVariantStableId) override; + Data::Asset shaderAsset, ShaderVariantStableId shaderVariantStableId, + SupervariantIndex supervariantIndex) override; Data::Asset GetShaderVariantTreeAsset(const Data::AssetId& shaderAssetId) override; - Data::Asset GetShaderVariantAsset(const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId) override; + Data::Asset GetShaderVariantAsset( + const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId, + SupervariantIndex supervariantIndex) override; void Reset() override; /////////////////////////////////////////////////////////////////// @@ -84,7 +92,7 @@ namespace AZ void ThreadServiceLoop(); void QueueShaderVariantTreeForLoading( - const PairOfShaderAssetAndShaderVariantId& shaderAndVariantPair, + const TupleShaderAssetAndShaderVariantId& shaderAndVariantTuple, AZStd::unordered_set& shaderVariantTreePendingRequests); //! This is a helper method called from the service thread. @@ -102,7 +110,7 @@ namespace AZ AZStd::condition_variable m_workCondition; //! This is a list of AssetId of ShaderVariantAsset. - AZStd::vector m_newShaderVariantPendingRequests; + AZStd::vector m_newShaderVariantPendingRequests; //! This is a list of AssetId of ShaderAsset (Do not confuse with the AssetId ShaderVariantTreeAsset). AZStd::vector m_shaderVariantTreePendingRequests; @@ -144,13 +152,14 @@ namespace AZStd }; template<> - struct hash + struct hash { - size_t operator()(const AZ::RPI::ShaderVariantAsyncLoader::PairOfShaderAssetAndShaderVariantId& pair) const + size_t operator()(const AZ::RPI::ShaderVariantAsyncLoader::TupleShaderAssetAndShaderVariantId& tuple) const { static constexpr AZStd::hash hash_fn; - size_t retVal = pair.m_shaderAsset.GetId().m_guid.GetHash(); - AZStd::hash_combine(retVal, hash_fn(pair.m_shaderVariantId)); + size_t retVal = tuple.m_shaderAsset.GetId().m_guid.GetHash(); + AZStd::hash_combine(retVal, hash_fn(tuple.m_shaderVariantId)); + AZStd::hash_combine(retVal, tuple.m_supervariantIndex.GetIndex()); return retVal; } }; diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialAsset.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialAsset.h index c941f1f587..a219e69acd 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialAsset.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialAsset.h @@ -67,15 +67,33 @@ namespace AZ //! See MaterialFunctor.h for details. const MaterialFunctorList& GetMaterialFunctors() const; - //! Returns the shader resource group asset that has per-material frequency, which indicates most of the topology + //! Returns the shader resource group layout that has per-material frequency, which indicates most of the topology //! for a material's shaders. - //! All shaders in a material will have the same per-material SRG asset. - const Data::Asset& GetMaterialSrgAsset() const; - - //! Returns the shader resource group asset that has per-object frequency. What constitutes an "object" is an + //! All shaders in a material will have the same per-material SRG layout. + //! @param supervariantIndex: supervariant index to get the layout from. + const RHI::Ptr& GetMaterialSrgLayout(const SupervariantIndex& supervariantIndex) const; + + //! Same as above but accepts the supervariant name. There's a minor penalty when using this function + //! because it will discover the index from the name. + const RHI::Ptr& GetMaterialSrgLayout(const AZ::Name& supervariantName) const; + + //! Just like the original GetMaterialSrgLayout() where it uses the index of the default supervariant. + //! See the definition of DefaultSupervariantIndex. + const RHI::Ptr& GetMaterialSrgLayout() const; + + //! Returns the shader resource group layout that has per-object frequency. What constitutes an "object" is an //! agreement between the FeatureProcessor and the shaders, but an example might be world-transform for a model. - //! All shaders in a material will have the same per-object SRG asset. - const Data::Asset& GetObjectSrgAsset() const; + //! All shaders in a material will have the same per-object SRG layout. + //! @param supervariantIndex: supervariant index to get the layout from. + const RHI::Ptr& GetObjectSrgLayout(const SupervariantIndex& supervariantIndex) const; + + //! Same as above but accepts the supervariant name. There's a minor penalty when using this function + //! because it will discover the index from the name. + const RHI::Ptr& GetObjectSrgLayout(const AZ::Name& supervariantName) const; + + //! Just like the original GetObjectSrgLayout() where it uses the index of the default supervariant. + //! See the definition of DefaultSupervariantIndex. + const RHI::Ptr& GetObjectSrgLayout() const; //! Returns a layout that includes a list of MaterialPropertyDescriptors for each material property. const MaterialPropertiesLayout* GetMaterialPropertiesLayout() const; diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialTypeAsset.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialTypeAsset.h index 6b260b5ae3..7bc3a7c491 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialTypeAsset.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialTypeAsset.h @@ -65,6 +65,8 @@ namespace AZ static const char* Group; static const char* Extension; + static constexpr uint32_t InvalidShaderIndex = static_cast(-1); + static void Reflect(ReflectContext* context); virtual ~MaterialTypeAsset(); @@ -77,15 +79,39 @@ namespace AZ //! See MaterialFunctor.h for details. const MaterialFunctorList& GetMaterialFunctors() const; - //! Returns the shader resource group asset that has per-material frequency, which indicates most of the topology + //! Returns the shader resource group layout that has per-material frequency, which indicates most of the topology //! for a material's shaders. - //! All shaders in a material will have the same per-material SRG asset. - const Data::Asset& GetMaterialSrgAsset() const; - - //! Returns the shader resource group asset that has per-object frequency. What constitutes an "object" is an + //! All shaders in a material will have the same per-material SRG layout. + //! @param supervariantIndex: supervariant index to get the layout from. + const RHI::Ptr& GetMaterialSrgLayout(const SupervariantIndex& supervariantIndex) const; + + //! Same as above but accepts the supervariant name. There's a minor penalty when using this function + //! because it will discover the index from the name. + const RHI::Ptr& GetMaterialSrgLayout(const AZ::Name& supervariantName) const; + + //! Just like the original GetMaterialSrgLayout() where it uses the index of the default supervariant. + //! See the definition of DefaultSupervariantIndex. + const RHI::Ptr& GetMaterialSrgLayout() const; + + //! Returns a ShaderAsset from @m_shaderCollection that contains the MaterialSrg layout. + const Data::Asset& GetShaderAssetForMaterialSrg() const; + + //! Returns the shader resource group layout that has per-object frequency. What constitutes an "object" is an //! agreement between the FeatureProcessor and the shaders, but an example might be world-transform for a model. - //! All shaders in a material will have the same per-object SRG asset. - const Data::Asset& GetObjectSrgAsset() const; + //! All shaders in a material will have the same per-object SRG layout. + //! @param supervariantIndex: supervariant index to get the layout from. + const RHI::Ptr& GetObjectSrgLayout(const SupervariantIndex& supervariantIndex) const; + + //! Same as above but accepts the supervariant name. There's a minor penalty when using this function + //! because it will discover the index from the name. + const RHI::Ptr& GetObjectSrgLayout(const AZ::Name& supervariantName) const; + + //! Just like the original GetObjectSrgLayout() where it uses the index of the default supervariant. + //! See the definition of DefaultSupervariantIndex. + const RHI::Ptr& GetObjectSrgLayout() const; + + //! Returns a ShaderAsset from @m_shaderCollection that contains the ObjectSrg layout. + const Data::Asset& GetShaderAssetForObjectSrg() const; //! Returns a layout that includes a list of MaterialPropertyDescriptors for each material property. const MaterialPropertiesLayout* GetMaterialPropertiesLayout() const; @@ -102,6 +128,9 @@ namespace AZ private: bool PostLoadInit(); + const RHI::Ptr& GetSrgLayout(uint32_t shaderIndex, const SupervariantIndex& supervariantIndex, uint32_t srgBindingSlot) const; + const RHI::Ptr& GetSrgLayout(uint32_t shaderIndex, const AZ::Name& supervariantName, uint32_t srgBindingSlot) const; + //! Called by asset creators to assign the asset to a ready state. void SetReady(); @@ -125,9 +154,12 @@ namespace AZ //! See MaterialFunctor.h for details. MaterialFunctorList m_materialFunctors; - //! Reference to the SRGs that are the same for all shaders in a material - Data::Asset m_materialSrgAsset; - Data::Asset m_objectSrgAsset; + //! Index in @m_shaderCollection of the shader asset that contains the MaterialSrg. + uint32_t m_materialSrgShaderIndex = InvalidShaderIndex; + + //! Index in @m_shaderCollection of the shader asset that contains the ObjectSrg. + uint32_t m_objectSrgShaderIndex = InvalidShaderIndex; + }; class MaterialTypeAssetHandler : public AssetHandler diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialTypeAssetCreator.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialTypeAssetCreator.h index 1afd6d9039..1fd89ebb2f 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialTypeAssetCreator.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Material/MaterialTypeAssetCreator.h @@ -101,16 +101,17 @@ namespace AZ void AddMaterialProperty(MaterialPropertyDescriptor&& materialProperty); - //! The material type holds references to the SRGs that are supposed to be the same across all passes in the material. This function - //! extracts a specific SRG from a ShaderAsset, saves it in the material type, and validates that all shaders use the same one. - //! @srgAssetToUpdate Points to a specific ShaderResourceGroupAsset in the MaterialTypeAsset being built. If null, this will be - //! filled with an SRG from the newShaderAsset. If not null, this will validate that the same SRG is used by newShaderAsset. + //! The material type holds references to shader assets that contain SRGs that are supposed to be the same across all passes in the material. + //! This function searches for an SRG given a @bindingSlot. If a valid one is found it makes sure it is the same across all shaders + //! and records in srgShaderIndexToUpdate the index of the ShaderAsset in the ShaderCollection where it was found. + //! @srgShaderIndexToUpdate Previously found shader index. If Invalid, this will be filled with the index of the shader Asset + //! where the bindingSlot was found. If not Invalid, this will validate that the same SRG is used by + //! newShaderAsset. + //! @newShaderAssetIndex Corresponding index of @newShaderAsset in m_asset->m_shaderCollection. //! @bindingSlot The binding slot ID of the SRG to fetch from newShaderAsset. - bool UpdateShaderResourceGroup( - Data::Asset& srgAssetToUpdate, - const Data::Asset& newShaderAsset, - uint32_t bindingSlot, - const char* srgDebugName); + bool UpdateShaderIndexForShaderResourceGroup( + uint32_t& srgShaderIndexToUpdate, const Data::Asset& newShaderAsset, const uint32_t newShaderAssetIndex, + const uint32_t bindingSlot, const char* srgDebugName); //! Saves the per-material SRG layout in m_shaderResourceGroupLayout for easier access void CacheMaterialSrgLayout(); diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Pass/RasterPassData.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Pass/RasterPassData.h index bcce393ee1..fd241f3be6 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Pass/RasterPassData.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Pass/RasterPassData.h @@ -37,9 +37,9 @@ namespace AZ if (auto* serializeContext = azrtti_cast(context)) { serializeContext->Class() - ->Version(2) + ->Version(3) // ATOM-15472 ->Field("DrawListTag", &RasterPassData::m_drawListTag) - ->Field("PassSrgAsset", &RasterPassData::m_passSrgReference) + ->Field("PassSrgShaderAsset", &RasterPassData::m_passSrgShaderReference) ->Field("Viewport", &RasterPassData::m_overrideViewport) ->Field("Scissor", &RasterPassData::m_overrideScissor) ->Field("DrawListSortType", &RasterPassData::m_drawListSortType) @@ -49,8 +49,8 @@ namespace AZ Name m_drawListTag; - //! Reference to the per pass SRG asset. This will be used to load the SRG in the raster pass. - AssetReference m_passSrgReference; + //! Reference to the shader asset that contains the PassSrg. This will be used to load the SRG in the raster pass. + AssetReference m_passSrgShaderReference; RHI::Viewport m_overrideViewport = RHI::Viewport::CreateNull(); RHI::Scissor m_overrideScissor = RHI::Scissor::CreateNull(); diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/RPISystemDescriptor.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/RPISystemDescriptor.h index 3d0b9f4f63..4ff7b827e9 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/RPISystemDescriptor.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/RPISystemDescriptor.h @@ -15,7 +15,6 @@ #include #include #include -#include namespace AZ { @@ -38,11 +37,9 @@ namespace AZ RHI::RHISystemDescriptor m_rhiSystemDescriptor; - //! The path of the only one scene srg asset for the RPI system. This is used to create any RPI::Scene. - AZStd::string m_sceneSrgAssetPath = "shaderlib/scenesrg_scenesrg.azsrg"; - - //! The path of the only one view srg asset for the RPI system. This is used to create any RPI::View. - AZStd::string m_viewSrgAssetPath = "shaderlib/viewsrg_viewsrg.azsrg"; + //! The asset cache relative path of the only common shader asset for the RPI system that is used + //! as means to load the layout for scene srg and view srg. This is used to create any RPI::Scene. + AZStd::string m_commonSrgsShaderAssetPath = "shader/sceneandviewsrgs.azshader"; ImageSystemDescriptor m_imageSystemDescriptor; GpuQuerySystemDescriptor m_gpuQuerySystemDescriptor; diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder.h index 75a1ba7339..ef98c32b24 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder.h @@ -13,6 +13,7 @@ #include +#include #include namespace AZ @@ -31,7 +32,7 @@ namespace AZ class IShaderVariantFinder { public: - AZ_TYPE_INFO(IShaderVariantFinder, "{B39F7407-BA4E-4F2F-810A-8B57D8080A04}"); + AZ_TYPE_INFO(IShaderVariantFinder, "{4E041C2C-F158-412E-8961-76987EC75692}"); static constexpr const char* LogName = "IShaderVariantFinder"; @@ -44,7 +45,8 @@ namespace AZ //! from the given ShaderVariantId. If a valid ShaderVariantStableId is found, it will be queued for loading. //! Eventually the caller will be notified via ShaderVariantFinderNotificationBus::OnShaderVariantAssetReady() //! The notification will occur on the Main Thread. - virtual bool QueueLoadShaderVariantAssetByVariantId(Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId) = 0; + virtual bool QueueLoadShaderVariantAssetByVariantId( + Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) = 0; //! This function does the first half of the work. It simply queues the loading of the ShaderVariantTreeAsset. //! Given the AssetId of a ShaderAsset it will try to find and load its corresponding ShaderVariantTreeAsset from @@ -62,15 +64,16 @@ namespace AZ //! ShaderVariantAsset is fully loaded. //! Returns true if the request was queued successfully. virtual bool QueueLoadShaderVariantAsset( - const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId) = 0; + const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId, + SupervariantIndex supervariantIndex) = 0; //! This is a quick blocking call that will return a valid asset only if it's been fully loaded already, //! Otherwise it returns an invalid asset and the caller is supposed to call QueueLoadShaderVariantAssetByVariantId(). virtual Data::Asset GetShaderVariantAssetByVariantId( - Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId) = 0; + Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) = 0; virtual Data::Asset GetShaderVariantAssetByStableId( - Data::Asset shaderAsset, ShaderVariantStableId shaderVariantStableId) = 0; + Data::Asset shaderAsset, ShaderVariantStableId shaderVariantStableId, SupervariantIndex supervariantIndex) = 0; //! This is a quick blocking call that will return a valid asset only if it's been fully loaded already, //! Otherwise it returns an invalid asset and the caller is supposed to call QueueLoadShaderVariantTreeAsset(). @@ -79,7 +82,8 @@ namespace AZ //! This is a quick blocking call that will return a valid asset only if i's been fully loaded already, //! Otherwise it returns an invalid asset and the caller is supposed to call QueueLoadShaderVariantAsset(). virtual Data::Asset GetShaderVariantAsset( - const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId) = 0; + const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId, + SupervariantIndex supervariantIndex) = 0; //! Clears the cache of loaded ShaderVariantTreeAsset and ShaderVariantAsset objects. //! This is intended for testing. diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder2.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder2.h deleted file mode 100644 index e09169c9a0..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder2.h +++ /dev/null @@ -1,113 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include - -#include -#include - -namespace AZ -{ - namespace RPI - { - class ShaderAsset2; - class ShaderVariantTreeAsset; - class ShaderVariantAsset2; - - //! This is the AZ::Interface<> declaration for the singleton responsible - //! for finding the best ShaderVariantAsset a shader can use. - //! This interface is public only to the ShaderAsset class. - //! The expectation is that when in need of shader variants the developer - //! should use AZ::RPI::Shader::GetVariant(). - class IShaderVariantFinder2 - { - public: - AZ_TYPE_INFO(IShaderVariantFinder2, "{4E041C2C-F158-412E-8961-76987EC75692}"); - - static constexpr const char* LogName = "IShaderVariantFinder2"; - - virtual ~IShaderVariantFinder2() = default; - - //! This function should be your one stop shop. - //! It simply queues the request to load a shader variant asset. - //! This function will automatically queue the ShaderVariantTreeAsset for loading if not available. - //! Afther the ShaderVariantTreeAsset is loaded and ready, it is used to find the best matching ShaderVariantStableId - //! from the given ShaderVariantId. If a valid ShaderVariantStableId is found, it will be queued for loading. - //! Eventually the caller will be notified via ShaderVariantFinderNotificationBus::OnShaderVariantAssetReady() - //! The notification will occur on the Main Thread. - virtual bool QueueLoadShaderVariantAssetByVariantId( - Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) = 0; - - //! This function does the first half of the work. It simply queues the loading of the ShaderVariantTreeAsset. - //! Given the AssetId of a ShaderAsset it will try to find and load its corresponding ShaderVariantTreeAsset from - //! the asset cache. If found, the asset will be loaded asynchronously and the caller will be notified via - //! ShaderVariantFinderNotificationBus on main thread when the ShaderVariantTreeAsset is fully loaded. - //! It is possible the requested ShaderVariantTreeAsset will never come into existence and in such - //! case the caller will NEVER be notified. - //! Returns true if the request was queued successfully. - virtual bool QueueLoadShaderVariantTreeAsset(const Data::AssetId& shaderAssetId) = 0; - - //! This function does the second half of the work. - //! Given the AssetId of a ShaderVariantTreeAsset and the stable id of a ShaderVariantAsset it will try to - //! find its corresponding ShaderVariantAsset from the asset cache. If found, the asset will be loaded - //! asynchronously and the caller will be notified via ShaderVariantFinderNotificationBus on main thread when the - //! ShaderVariantAsset is fully loaded. - //! Returns true if the request was queued successfully. - virtual bool QueueLoadShaderVariantAsset( - const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId, - SupervariantIndex supervariantIndex) = 0; - - //! This is a quick blocking call that will return a valid asset only if it's been fully loaded already, - //! Otherwise it returns an invalid asset and the caller is supposed to call QueueLoadShaderVariantAssetByVariantId(). - virtual Data::Asset GetShaderVariantAssetByVariantId( - Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) = 0; - - virtual Data::Asset GetShaderVariantAssetByStableId( - Data::Asset shaderAsset, ShaderVariantStableId shaderVariantStableId, SupervariantIndex supervariantIndex) = 0; - - //! This is a quick blocking call that will return a valid asset only if it's been fully loaded already, - //! Otherwise it returns an invalid asset and the caller is supposed to call QueueLoadShaderVariantTreeAsset(). - virtual Data::Asset GetShaderVariantTreeAsset(const Data::AssetId& shaderAssetId) = 0; - - //! This is a quick blocking call that will return a valid asset only if i's been fully loaded already, - //! Otherwise it returns an invalid asset and the caller is supposed to call QueueLoadShaderVariantAsset(). - virtual Data::Asset GetShaderVariantAsset( - const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId, - SupervariantIndex supervariantIndex) = 0; - - //! Clears the cache of loaded ShaderVariantTreeAsset and ShaderVariantAsset objects. - //! This is intended for testing. - virtual void Reset() = 0; - }; - - //! IShaderVariantFinder2 will call on this notification bus on the main thread. - //! Only the following classes are supposed to register to this notification bus: - //! AZ::RPI::ShaderAsset & AZ::RPI::Shader - class ShaderVariantFinderNotification2 - : public EBusTraits - { - public: - ////////////////////////////////////////////////////////////////////////// - // EBusTraits overrides - static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::ById; - using MutexType = AZStd::recursive_mutex; - typedef Data::AssetId BusIdType; // The AssetId of the shader asset. - ////////////////////////////////////////////////////////////////////////// - - virtual void OnShaderVariantTreeAssetReady(Data::Asset shaderVariantTreeAsset, bool isError) = 0; - virtual void OnShaderVariantAssetReady(Data::Asset shaderVariantAsset, bool isError) = 0; - }; - using ShaderVariantFinderNotificationBus2 = AZ::EBus; - - } // namespace RPI -}// namespace AZ diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.h index 0991afbcbb..cbaae3d099 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.h @@ -49,7 +49,6 @@ namespace AZ AZStd::string m_shaderAssetFileName; AZStd::vector m_platformIdentifiers; - AZStd::vector m_srgAssetFileNames; AZStd::vector> m_rootShaderVariantAssets; }; } // namespace RPI diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAsset.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAsset.h index cc31b0735a..a09f866bde 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAsset.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAsset.h @@ -19,8 +19,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -36,6 +36,23 @@ namespace AZ { namespace RPI { + using ShaderResourceGroupLayoutList = AZStd::fixed_vector, RHI::Limits::Pipeline::ShaderResourceGroupCountMax>; + + enum class ShaderAssetSubId : uint32_t + { + ShaderAsset = 0, //!< for .azshader file, One per .shader. + RootShaderVariantAsset, //!< for .azshadervariant, one per supervariant and referenced inside the .azshader. + FlatAzsl, //!< .azslin, this file contains the result of preprocessing an azsl file with MCPP, along with prepending the per-RHI azsli header. + IaJson, //!< .ia.json, Input Assembly reflection data. + OmJson, //!< .om.json, Output Merger reflection data. + SrgJson, //!< .srg.json, Shader Resource Group reflection data. + OptionsJson, //!< .options.json, Shader Options reflection data. + BindingdepJson, //!<.bindingdep.json, Binding dependencies. + GeneratedHlslSource, //!<.hlsl code generated with AZSLc. + FirstByProduct, //!< This must be last because we use this as a base for adding all the debug byProducts generated + //!< with dxc, or spirv-cross, etc. + }; + class ShaderAsset final : public Data::AssetData , public ShaderVariantFinderNotificationBus::Handler @@ -45,27 +62,49 @@ namespace AZ friend class ShaderAssetHandler; friend class ShaderAssetTester; public: - AZ_RTTI(ShaderAsset, "{892C4FF2-0B56-417D-AF2E-6FF04D6D6EA9}", Data::AssetData); - + AZ_RTTI(ShaderAsset, "{823395A3-D570-49F4-99A9-D820CD1DEF98}", Data::AssetData); static void Reflect(ReflectContext* context); - static const char* DisplayName; - static const char* Extension; - static const char* Group; + static constexpr char DisplayName[] = "Shader"; + static constexpr char Extension[] = "azshader"; + static constexpr char Group[] = "Shader"; //! The default shader variant (i.e. the one without any options set). static const ShaderVariantStableId RootShaderVariantStableId; - // @subProductType is one of ShaderAssetSubId, or (ShaderAssetSubId::GeneratedHlslSource + 1)+ - static uint32_t MakeAssetProductSubId(uint32_t rhiApiUniqueIndex, uint32_t subProductType); + + // @subProductType is one of ShaderAssetSubId, or ShaderAssetSubId::FirstByProduct+ + static uint32_t MakeProductAssetSubId(uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, uint32_t subProductType); + static SupervariantIndex GetSupervariantIndexFromProductAssetSubId(uint32_t assetProducSubId); + static SupervariantIndex GetSupervariantIndexFromAssetId(const Data::AssetId& assetId); + ShaderAsset() = default; ~ShaderAsset(); AZ_DISABLE_COPY_MOVE(ShaderAsset); + //! Returns the name of the shader. const Name& GetName() const; + //! Returns the pipeline state type generated by variants of this shader. + RHI::PipelineStateType GetPipelineStateType() const; + + //! Returns the draw list tag name. + //! To get the corresponding DrawListTag use DrawListTagRegistry's FindTag() or AcquireTag() (see + //! RHISystemInterface::GetDrawListTagRegistry()). The DrawListTag is also available in the Shader that corresponds to this + //! ShaderAsset. + const Name& GetDrawListName() const; + + //! Return the timestamp when the shader asset was built. + //! This is used to synchronize versions of the ShaderAsset and ShaderVariantTreeAsset, especially during hot-reload. + AZStd::sys_time_t GetShaderAssetBuildTimestamp() const; + + //! Returns the shader option group layout. + const ShaderOptionGroupLayout* GetShaderOptionGroupLayout() const; + + SupervariantIndex GetSupervariantIndex(const AZ::Name& supervariantName) const; + //! This function should be your one stop shop to get a ShaderVariantAsset. //! Finds and returns the best matching ShaderVariantAsset given a ShaderVariantId. //! If the ShaderVariantAsset is not fully loaded and ready at the moment, this function @@ -74,7 +113,9 @@ namespace AZ //! ShaderVariantAsset is loaded and ready. //! In the mean time, if the required variant is not available this function //! returns the Root Variant. - Data::Asset GetVariant(const ShaderVariantId& shaderVariantId); + Data::Asset GetVariant( + const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex); + Data::Asset GetVariant(const ShaderVariantId& shaderVariantId) { return GetVariant(shaderVariantId, DefaultSupervariantIndex); } //! Finds the best matching shader variant and returns its StableId. //! This function first loads and caches the ShaderVariantTreeAsset (if not done before). @@ -90,45 +131,94 @@ namespace AZ //! Next time around if the variant has been loaded this function will return it. Alternatively //! the caller can register with the ShaderVariantFinderNotificationBus to get the asset as soon as is available. //! This function is thread safe. - Data::Asset GetVariant(ShaderVariantStableId shaderVariantStableId) const; + Data::Asset GetVariant( + ShaderVariantStableId shaderVariantStableId, SupervariantIndex supervariantIndex) const; + Data::Asset GetVariant(ShaderVariantStableId shaderVariantStableId) const { return GetVariant(shaderVariantStableId, DefaultSupervariantIndex); } - Data::Asset GetRootVariant() const; + Data::Asset GetRootVariant(SupervariantIndex supervariantIndex) const; + Data::Asset GetRootVariant() const { return GetRootVariant(DefaultSupervariantIndex); } - //! Finds and returns the shader resource group asset with the requested name. Returns an empty handle if no matching group was found. - const Data::Asset& FindShaderResourceGroupAsset(const Name& shaderResourceGroupName) const; - //! Finds and returns the shader resource group asset associated with the requested binding slot. Returns an empty handle if no matching group was found. - const Data::Asset& FindShaderResourceGroupAsset(uint32_t bindingSlot) const; + //! Finds and returns the shader resource group asset with the requested name. Returns an empty handle if no matching group was + //! found. + const RHI::Ptr& FindShaderResourceGroupLayout( + const Name& shaderResourceGroupName, SupervariantIndex supervariantIndex) const; + const RHI::Ptr& FindShaderResourceGroupLayout(const Name& shaderResourceGroupName) const + { + return FindShaderResourceGroupLayout(shaderResourceGroupName, DefaultSupervariantIndex); + } - //! Finds and returns the shader resource group asset designated as a ShaderVariantKey fallback. - const Data::Asset& FindFallbackShaderResourceGroupAsset() const; + //! Finds and returns the shader resource group layout associated with the requested binding slot. Returns an empty handle if no matching srg was found. + const RHI::Ptr& FindShaderResourceGroupLayout( + uint32_t bindingSlot, SupervariantIndex supervariantIndex) const; + const RHI::Ptr& FindShaderResourceGroupLayout(uint32_t bindingSlot) const + { + return FindShaderResourceGroupLayout(bindingSlot, DefaultSupervariantIndex); + } - //! Returns the set of shader resource groups referenced by all variants in the shader asset. - AZStd::array_view> GetShaderResourceGroupAssets() const; + //! Finds and returns the shader resource group layout designated as a ShaderVariantKey fallback. + const RHI::Ptr& FindFallbackShaderResourceGroupLayout( SupervariantIndex supervariantIndex) const; + const RHI::Ptr& FindFallbackShaderResourceGroupLayout() const + { + return FindFallbackShaderResourceGroupLayout(DefaultSupervariantIndex); + } - //! Returns the pipeline state type generated by variants of this shader. - RHI::PipelineStateType GetPipelineStateType() const; + + //! Returns the set of shader resource group layouts owned by a given supervariant. + AZStd::array_view> GetShaderResourceGroupLayouts( SupervariantIndex supervariantIndex) const; + AZStd::array_view> GetShaderResourceGroupLayouts() const + { + return GetShaderResourceGroupLayouts(DefaultSupervariantIndex); + } //! Returns the pipeline layout descriptor shared by all variants in the asset. - const RHI::PipelineLayoutDescriptor* GetPipelineLayoutDescriptor() const; - - //! Returns the shader option group layout used by all variants in the shader asset. - const ShaderOptionGroupLayout* GetShaderOptionGroupLayout() const; + const RHI::PipelineLayoutDescriptor* GetPipelineLayoutDescriptor(SupervariantIndex supervariantIndex) const; + const RHI::PipelineLayoutDescriptor* GetPipelineLayoutDescriptor() const + { + return GetPipelineLayoutDescriptor(DefaultSupervariantIndex); + } //! Returns the shader resource group asset that has per-draw frequency, which is added to every draw packet. - const Data::Asset& GetDrawSrgAsset() const; + const RHI::Ptr& GetDrawSrgLayout(SupervariantIndex supervariantIndex) const; + const RHI::Ptr& GetDrawSrgLayout() const + { + return GetDrawSrgLayout(DefaultSupervariantIndex); + } + + + //! Returns the ShaderInputContract which describes which inputs the shader requires + const ShaderInputContract& GetInputContract(SupervariantIndex supervariantIndex) const; + const ShaderInputContract& GetInputContract() const + { + return GetInputContract(DefaultSupervariantIndex); + } + + + //! Returns the ShaderOuputContract which describes which outputs the shader requires + const ShaderOutputContract& GetOutputContract(SupervariantIndex supervariantIndex) const; + const ShaderOutputContract& GetOutputContract() const + { + return GetOutputContract(DefaultSupervariantIndex); + } + + + //! Returns the render states for the draw pipeline. Only used for draw pipelines. + const RHI::RenderStates& GetRenderStates(SupervariantIndex supervariantIndex) const; + const RHI::RenderStates& GetRenderStates() const + { + return GetRenderStates(DefaultSupervariantIndex); + } + //! Returns a list of arguments for the specified attribute, or nullopt_t if the attribute is not found. The list can be empty which is still valid. - AZStd::optional GetAttribute(const RHI::ShaderStage& shaderStage, const Name& attributeName) const; + AZStd::optional GetAttribute( + const RHI::ShaderStage& shaderStage, const Name& attributeName, SupervariantIndex supervariantIndex) const; + AZStd::optional GetAttribute( + const RHI::ShaderStage& shaderStage, const Name& attributeName) const + { + return GetAttribute(shaderStage, attributeName, DefaultSupervariantIndex); + } - //! Returns the draw list tag name. - //! To get the corresponding DrawListTag use DrawListTagRegistry's FindTag() or AcquireTag() (see RHISystemInterface::GetDrawListTagRegistry()). - //! The DrawListTag is also available in the Shader that corresponds to this ShaderAsset. - const Name& GetDrawListName() const; - - //! Return the timestamp when the shader asset was built. - //! This is used to synchronize versions of the ShaderAsset and ShaderVariantTreeAsset, especially during hot-reload. - AZStd::sys_time_t GetShaderAssetBuildTimestamp() const; private: /////////////////////////////////////////////////////////////////// @@ -142,27 +232,39 @@ namespace AZ void OnShaderVariantAssetReady(Data::Asset /*shaderVariantAsset*/, bool /*isError*/) override {}; /////////////////////////////////////////////////////////////////// + //! A Supervariant represents a set of static shader compilation parameters. + //! Those parameters can be predefined c-preprocessor macros or specific arguments + //! for AZSLc. + //! For each Supervariant there's a unique Root ShaderVariantAsset, and possibly an N amount + //! of ShaderVariantAssets. The 'N' amount is the same across all Supervariants because all Supervariants + //! share the same ShaderVariantTreeAsset. + struct Supervariant + { + AZ_TYPE_INFO(Supervariant, "{850826EF-B267-4752-92F6-A85E4175CAB8}"); + static void Reflect(AZ::ReflectContext* context); + + AZ::Name m_name; + ShaderResourceGroupLayoutList m_srgLayoutList; + RHI::Ptr m_pipelineLayoutDescriptor; + ShaderInputContract m_inputContract; + ShaderOutputContract m_outputContract; + RHI::RenderStates m_renderStates; + RHI::ShaderStageAttributeMapList m_attributeMaps; + Data::Asset m_rootShaderVariantAsset; + }; + //! Container of shader data that is specific to an RHI API. //! A ShaderAsset can contain shader data for multiple RHI APIs if //! the platform support multiple RHIs. struct ShaderApiDataContainer { - AZ_TYPE_INFO(ShaderApiDataContainer, "{1CF7F153-8355-4374-89EF-AD0F78B83D95}"); + AZ_TYPE_INFO(ShaderApiDataContainer, "{C636722C-60B9-421C-ACAD-9750BF634A27}"); static void Reflect(AZ::ReflectContext* context); //! RHI API Type for this shader data. RHI::APIType m_APIType; - - //! The pipeline layout is shared between all variants in the shader. - RHI::Ptr m_pipelineLayoutDescriptor; - - Data::Asset m_rootShaderVariantAsset; - - /////////////////////////////////////////////////////////////////// - //! List of attributes attached to the shader stage entry - //! In cases where the virtual shader stage maps to one shader entry function, the attributes are of that entry function - //! In cases where the virtual shader stage maps to multiple entries, the attributes list is a union of all attributes - RHI::ShaderStageAttributeMapList m_attributeMaps; + // Index 0, will always be the default Supervariant. (see DefaultSupervariantIndex) + AZStd::vector m_supervariants; }; bool FinalizeAfterLoad(); @@ -170,38 +272,50 @@ namespace AZ ShaderApiDataContainer& GetCurrentShaderApiData(); const ShaderApiDataContainer& GetCurrentShaderApiData() const; + //! Returning pointers instead of references to allow for error checking + //! and not having to assert. + Supervariant* GetSupervariant(SupervariantIndex supervariantIndex); + const Supervariant* GetSupervariant(SupervariantIndex supervariantIndex) const; + + + //! The name is the stem of the source .shader file. Name m_name; //! Dictates the type of pipeline state generated by this asset (Draw / Dispatch / etc.). - //! All shader variants in the asset adhere to this type. + //! All shader variants, across all supervariants, in the asset adhere to this type. RHI::PipelineStateType m_pipelineStateType = RHI::PipelineStateType::Count; - //! Shader resource group assets referenced by this shader asset. - AZStd::fixed_vector, RHI::Limits::Pipeline::ShaderResourceGroupCountMax> m_shaderResourceGroupAssets; - //! Defines the layout of the shader options in the asset. Ptr m_shaderOptionGroupLayout; //! List with shader data per RHI backend. AZStd::vector m_perAPIShaderData; - static constexpr size_t InvalidAPITypeIndex = std::numeric_limits::max(); - - //! Index that indicates which ShaderDataContainer to use. - size_t m_currentAPITypeIndex = InvalidAPITypeIndex; - Name m_drawListName; - //! Used for thread safety for FindVariantStableId(). - mutable AZStd::shared_mutex m_variantTreeMutex; - //! Use to synchronize versions of the ShaderAsset and ShaderVariantTreeAsset, especially during hot-reload. AZStd::sys_time_t m_shaderAssetBuildTimestamp = 0; - //! Do Not Serialize! We can not know the ShaderVariantTreeAsset by the time this asset is being created. + + /////////////////////////////////////////////////////////////////// + //! Do Not Serialize! + + static constexpr size_t InvalidAPITypeIndex = std::numeric_limits::max(); + + //! Index that indicates which ShaderDataContainer to use. + //! At runtime, the asset checks the current active RHI Backend + //! and based on the results this variable gets set on asset load. + //! The vector @m_perAPIShaderData will be indexed with this variable. + size_t m_currentAPITypeIndex = InvalidAPITypeIndex; + + //! We can not know the ShaderVariantTreeAsset by the time this asset is being created. //! This is a value that is discovered at run time. It becomes valid when FindVariantStableId is called at least once. - Data::Asset m_shaderVariantTree; - bool m_shaderVariantTreeLoadWasRequested = false; + Data::Asset m_shaderVariantTree; + + //! Used for thread safety for FindVariantStableId(). + mutable AZStd::shared_mutex m_variantTreeMutex; + + bool m_shaderVariantTreeLoadWasRequested = false; }; class ShaderAssetHandler final @@ -219,22 +333,6 @@ namespace AZ Data::AssetHandler::LoadResult PostLoadInit(const Data::Asset& asset); }; - ////////////////////////////////////////////////////////////////////////// - // Deprecated System - enum class ShaderAssetSubId : uint32_t - { - ShaderAsset = 0, - RootShaderVariantAsset, - PostPreprocessingPureAzsl, // .azslin - IaJson, - OmJson, - SrgJson, - OptionsJson, - BindingdepJson, - GeneratedHlslSource // This must be last because we use this as a base for adding the RHI::APIType when generating shadersource for multiple RHI APIs. - }; - - ////////////////////////////////////////////////////////////////////////// } // namespace RPI diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAsset2.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAsset2.h deleted file mode 100644 index 632c35bb82..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAsset2.h +++ /dev/null @@ -1,339 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include - -namespace AZ -{ - namespace RPI - { - using ShaderResourceGroupLayoutList = AZStd::fixed_vector, RHI::Limits::Pipeline::ShaderResourceGroupCountMax>; - - enum class ShaderAsset2ProductSubId : uint32_t - { - ShaderAsset2 = 0, //!< for .azshader file, One per .shader. - RootShaderVariantAsset, //!< for .azshadervariant, one per supervariant and referenced inside the .azshader. - AzslFlat, //!< .azslin, this file contains the result of preprocessing an azsl file with MCPP, along with prepending the per-RHI azsli header. - IaJson, //!< .ia.json, Input Assembly reflection data. - OmJson, //!< .om.json, Output Merger reflection data. - SrgJson, //!< .srg.json, Shader Resource Group reflection data. - OptionsJson, //!< .options.json, Shader Options reflection data. - BindingdepJson, //!<.bindingdep.json, Binding dependencies. - GeneratedHlslSource, //!<.hlsl code generated with AZSLc. - FirstByProduct, //!< This must be last because we use this as a base for adding all the debug byProducts generated - //!< with dxc, or spirv-cross, etc. - }; - - class ShaderAsset2 final - : public Data::AssetData - , public ShaderVariantFinderNotificationBus2::Handler - , public Data::AssetBus::Handler - { - friend class ShaderAssetCreator2; - friend class ShaderAssetHandler2; - friend class ShaderAssetTester2; - public: - AZ_RTTI(ShaderAsset2, "{823395A3-D570-49F4-99A9-D820CD1DEF98}", Data::AssetData); - static void Reflect(ReflectContext* context); - - static constexpr char DisplayName[] = "Shader"; - static constexpr char Extension[] = "azshader2"; - static constexpr char Group[] = "Shader"; - - //! The default shader variant (i.e. the one without any options set). - static const ShaderVariantStableId RootShaderVariantStableId; - - // @subProductType is one of ShaderAsset2ProductSubId, or ShaderAsset2ProductSubId::FirstByProduct+ - static uint32_t MakeProductAssetSubId(uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, uint32_t subProductType); - static SupervariantIndex GetSupervariantIndexFromProductAssetSubId(uint32_t assetProducSubId); - static SupervariantIndex GetSupervariantIndexFromAssetId(const Data::AssetId& assetId); - - - ShaderAsset2() = default; - ~ShaderAsset2(); - - AZ_DISABLE_COPY_MOVE(ShaderAsset2); - - - //! Returns the name of the shader. - const Name& GetName() const; - - //! Returns the pipeline state type generated by variants of this shader. - RHI::PipelineStateType GetPipelineStateType() const; - - //! Returns the draw list tag name. - //! To get the corresponding DrawListTag use DrawListTagRegistry's FindTag() or AcquireTag() (see - //! RHISystemInterface::GetDrawListTagRegistry()). The DrawListTag is also available in the Shader that corresponds to this - //! ShaderAsset2. - const Name& GetDrawListName() const; - - //! Return the timestamp when the shader asset was built. - //! This is used to synchronize versions of the ShaderAsset2 and ShaderVariantTreeAsset, especially during hot-reload. - AZStd::sys_time_t GetShaderAssetBuildTimestamp() const; - - //! Returns the shader option group layout. - const ShaderOptionGroupLayout* GetShaderOptionGroupLayout() const; - - SupervariantIndex GetSupervariantIndex(const AZ::Name& supervariantName) const; - - //! This function should be your one stop shop to get a ShaderVariantAsset. - //! Finds and returns the best matching ShaderVariantAsset given a ShaderVariantId. - //! If the ShaderVariantAsset is not fully loaded and ready at the moment, this function - //! will QueueLoad the ShaderVariantTreeAsset and subsequently will QueueLoad the ShaderVariantAsset. - //! The called will be notified via the ShaderVariantFinderNotificationBus when the - //! ShaderVariantAsset is loaded and ready. - //! In the mean time, if the required variant is not available this function - //! returns the Root Variant. - Data::Asset GetVariant( - const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex); - Data::Asset GetVariant(const ShaderVariantId& shaderVariantId) { return GetVariant(shaderVariantId, DefaultSupervariantIndex); } - - //! Finds the best matching shader variant and returns its StableId. - //! This function first loads and caches the ShaderVariantTreeAsset (if not done before). - //! If the ShaderVariantTreeAsset is not found (either the AssetProcessor has not generated it yet, or it simply doesn't exist), then - //! it returns a search result that identifies the root variant. - //! This function is thread safe. - ShaderVariantSearchResult FindVariantStableId(const ShaderVariantId& shaderVariantId); - - //! Returns the variant asset associated with the provided StableId. - //! The user should call FindVariantStableId() first to get a ShaderVariantStableId from a ShaderVariantId, - //! Or better yet, call GetVariant(ShaderVariantId) for maximum convenience. - //! If the requested variant is not found, the root variant will be returned AND the requested variant will be queued for loading. - //! Next time around if the variant has been loaded this function will return it. Alternatively - //! the caller can register with the ShaderVariantFinderNotificationBus to get the asset as soon as is available. - //! This function is thread safe. - Data::Asset GetVariant( - ShaderVariantStableId shaderVariantStableId, SupervariantIndex supervariantIndex) const; - Data::Asset GetVariant(ShaderVariantStableId shaderVariantStableId) const { return GetVariant(shaderVariantStableId, DefaultSupervariantIndex); } - - Data::Asset GetRootVariant(SupervariantIndex supervariantIndex) const; - Data::Asset GetRootVariant() const { return GetRootVariant(DefaultSupervariantIndex); } - - - //! Finds and returns the shader resource group asset with the requested name. Returns an empty handle if no matching group was - //! found. - const RHI::Ptr FindShaderResourceGroupLayout( - const Name& shaderResourceGroupName, SupervariantIndex supervariantIndex) const; - const RHI::Ptr FindShaderResourceGroupLayout(const Name& shaderResourceGroupName) const - { - return FindShaderResourceGroupLayout(shaderResourceGroupName, DefaultSupervariantIndex); - } - - //! Finds and returns the shader resource group layout associated with the requested binding slot. Returns an empty handle if no matching srg was found. - const RHI::Ptr FindShaderResourceGroupLayout( - uint32_t bindingSlot, SupervariantIndex supervariantIndex) const; - const RHI::Ptr FindShaderResourceGroupLayout(uint32_t bindingSlot) const - { - return FindShaderResourceGroupLayout(bindingSlot, DefaultSupervariantIndex); - } - - //! Finds and returns the shader resource group layout designated as a ShaderVariantKey fallback. - const RHI::Ptr FindFallbackShaderResourceGroupLayout( SupervariantIndex supervariantIndex) const; - const RHI::Ptr FindFallbackShaderResourceGroupLayout() const - { - return FindFallbackShaderResourceGroupLayout(DefaultSupervariantIndex); - } - - - //! Returns the set of shader resource group layouts owned by a given supervariant. - AZStd::array_view> GetShaderResourceGroupLayouts( SupervariantIndex supervariantIndex) const; - AZStd::array_view> GetShaderResourceGroupLayouts() const - { - return GetShaderResourceGroupLayouts(DefaultSupervariantIndex); - } - - //! Returns the pipeline layout descriptor shared by all variants in the asset. - const RHI::PipelineLayoutDescriptor* GetPipelineLayoutDescriptor(SupervariantIndex supervariantIndex) const; - const RHI::PipelineLayoutDescriptor* GetPipelineLayoutDescriptor() const - { - return GetPipelineLayoutDescriptor(DefaultSupervariantIndex); - } - - //! Returns the shader resource group asset that has per-draw frequency, which is added to every draw packet. - const RHI::Ptr GetDrawSrgLayout(SupervariantIndex supervariantIndex) const; - const RHI::Ptr GetDrawSrgLayout() const - { - return GetDrawSrgLayout(DefaultSupervariantIndex); - } - - - //! Returns the ShaderInputContract which describes which inputs the shader requires - const ShaderInputContract& GetInputContract(SupervariantIndex supervariantIndex) const; - const ShaderInputContract& GetInputContract() const - { - return GetInputContract(DefaultSupervariantIndex); - } - - - //! Returns the ShaderOuputContract which describes which outputs the shader requires - const ShaderOutputContract& GetOutputContract(SupervariantIndex supervariantIndex) const; - const ShaderOutputContract& GetOutputContract() const - { - return GetOutputContract(DefaultSupervariantIndex); - } - - - //! Returns the render states for the draw pipeline. Only used for draw pipelines. - const RHI::RenderStates& GetRenderStates(SupervariantIndex supervariantIndex) const; - const RHI::RenderStates& GetRenderStates() const - { - return GetRenderStates(DefaultSupervariantIndex); - } - - - //! Returns a list of arguments for the specified attribute, or nullopt_t if the attribute is not found. The list can be empty which is still valid. - AZStd::optional GetAttribute( - const RHI::ShaderStage& shaderStage, const Name& attributeName, SupervariantIndex supervariantIndex) const; - AZStd::optional GetAttribute( - const RHI::ShaderStage& shaderStage, const Name& attributeName) const - { - return GetAttribute(shaderStage, attributeName, DefaultSupervariantIndex); - } - - - private: - /////////////////////////////////////////////////////////////////// - /// AssetBus overrides - void OnAssetReloaded(Data::Asset asset) override; - /////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////// - /// ShaderVariantFinderNotificationBus2 overrides - void OnShaderVariantTreeAssetReady(Data::Asset shaderVariantTreeAsset, bool isError) override; - void OnShaderVariantAssetReady(Data::Asset /*shaderVariantAsset*/, bool /*isError*/) override {}; - /////////////////////////////////////////////////////////////////// - - //! A Supervariant represents a set of static shader compilation parameters. - //! Those parameters can be predefined c-preprocessor macros or specific arguments - //! for AZSLc. - //! For each Supervariant there's a unique Root ShaderVariantAsset, and possibly an N amount - //! of ShaderVariantAssets. The 'N' amount is the same across all Supervariants because all Supervariants - //! share the same ShaderVariantTreeAsset. - struct Supervariant - { - AZ_TYPE_INFO(Supervariant, "{850826EF-B267-4752-92F6-A85E4175CAB8}"); - static void Reflect(AZ::ReflectContext* context); - - AZ::Name m_name; - ShaderResourceGroupLayoutList m_srgLayoutList; - RHI::Ptr m_pipelineLayoutDescriptor; - ShaderInputContract m_inputContract; - ShaderOutputContract m_outputContract; - RHI::RenderStates m_renderStates; - RHI::ShaderStageAttributeMapList m_attributeMaps; - Data::Asset m_rootShaderVariantAsset; - }; - - //! Container of shader data that is specific to an RHI API. - //! A ShaderAsset2 can contain shader data for multiple RHI APIs if - //! the platform support multiple RHIs. - struct ShaderApiDataContainer - { - AZ_TYPE_INFO(ShaderApiDataContainer, "{C636722C-60B9-421C-ACAD-9750BF634A27}"); - static void Reflect(AZ::ReflectContext* context); - - //! RHI API Type for this shader data. - RHI::APIType m_APIType; - // Index 0, will always be the default Supervariant. (see DefaultSupervariantIndex) - AZStd::vector m_supervariants; - }; - - bool FinalizeAfterLoad(); - void SetReady(); - ShaderApiDataContainer& GetCurrentShaderApiData(); - const ShaderApiDataContainer& GetCurrentShaderApiData() const; - - //! Returning pointers instead of references to allow for error checking - //! and not having to assert. - Supervariant* GetSupervariant(SupervariantIndex supervariantIndex); - const Supervariant* GetSupervariant(SupervariantIndex supervariantIndex) const; - - - //! The name is the stem of the source .shader file. - Name m_name; - - //! Dictates the type of pipeline state generated by this asset (Draw / Dispatch / etc.). - //! All shader variants, across all supervariants, in the asset adhere to this type. - RHI::PipelineStateType m_pipelineStateType = RHI::PipelineStateType::Count; - - //! Defines the layout of the shader options in the asset. - Ptr m_shaderOptionGroupLayout; - - //! List with shader data per RHI backend. - AZStd::vector m_perAPIShaderData; - - Name m_drawListName; - - //! Use to synchronize versions of the ShaderAsset2 and ShaderVariantTreeAsset, especially during hot-reload. - AZStd::sys_time_t m_shaderAssetBuildTimestamp = 0; - - - /////////////////////////////////////////////////////////////////// - //! Do Not Serialize! - - static constexpr size_t InvalidAPITypeIndex = std::numeric_limits::max(); - - //! Index that indicates which ShaderDataContainer to use. - //! At runtime, the asset checks the current active RHI Backend - //! and based on the results this variable gets set on asset load. - //! The vector @m_perAPIShaderData will be indexed with this variable. - size_t m_currentAPITypeIndex = InvalidAPITypeIndex; - - //! We can not know the ShaderVariantTreeAsset by the time this asset is being created. - //! This is a value that is discovered at run time. It becomes valid when FindVariantStableId is called at least once. - Data::Asset m_shaderVariantTree; - - //! Used for thread safety for FindVariantStableId(). - mutable AZStd::shared_mutex m_variantTreeMutex; - - bool m_shaderVariantTreeLoadWasRequested = false; - }; - - class ShaderAssetHandler2 final - : public AssetHandler - { - using Base = AssetHandler; - public: - ShaderAssetHandler2() = default; - - private: - Data::AssetHandler::LoadResult LoadAssetData( - const Data::Asset& asset, - AZStd::shared_ptr stream, - const Data::AssetFilterCB& assetLoadFilterCB) override; - Data::AssetHandler::LoadResult PostLoadInit(const Data::Asset& asset); - }; - - ////////////////////////////////////////////////////////////////////////// - } // namespace RPI - -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator.h index a55befc76b..caa686d151 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator.h @@ -37,11 +37,6 @@ namespace AZ //! [Optional] Sets the DrawListTag name associated with this shader. void SetDrawListName(const Name& name); - //! [Optional] Adds a shader resource group asset. The order of shader resource group assets must match the same - //! order supplied to the pipeline layout descriptor. A mismatch will cause End() to fail. This method - //! requires that the asset be loaded in order to validate contents properly. - void AddShaderResourceGroupAsset(const Data::Asset& shaderResourceGroupAsset); - //! [Required] Assigns the layout used to construct and parse shader options packed into shader variant keys. //! Requires that the keys assigned to shader variants were constructed using the same layout. void SetShaderOptionGroupLayout(const Ptr& shaderOptionGroupLayout); @@ -51,33 +46,54 @@ namespace AZ //! @param type The target RHI API type. void BeginAPI(RHI::APIType type); - //! [Required] There's always a root variant for each RHI::APIType. - void SetRootShaderVariantAsset(Data::Asset shaderVariantAsset); + //! Begins the creation of a Supervariant for the current RHI::APIType. + //! If this is the first supervariant its name must be empty. The first + //! supervariant is always the default, nameless, supervariant. + void BeginSupervariant(const Name& name); - //! [Optional] Not all shaders have attributes before functions. Some attributes do not exist for all RHI::APIType either. - void SetShaderStageAttributeMapList(const RHI::ShaderStageAttributeMapList& shaderStageAttributeMapList); + void SetSrgLayoutList(const ShaderResourceGroupLayoutList& srgLayoutList); //! [Required] Assigns the pipeline layout descriptor shared by all variants in the shader. Shader variants //! embedded in a single shader asset are required to use the same pipeline layout. It is not necessary to call //! Finalize() on the pipeline layout prior to assignment, but still permitted. - void SetPipelineLayout(const Ptr& pipelineLayoutDescriptor); + void SetPipelineLayout(RHI::Ptr m_pipelineLayoutDescriptor); + + //! Assigns the contract for inputs required by the shader. + void SetInputContract(const ShaderInputContract& contract); + + //! Assigns the contract for outputs required by the shader. + void SetOutputContract(const ShaderOutputContract& contract); + + //! Assigns the render states for the draw pipeline. Ignored for non-draw pipelines. + void SetRenderStates(const RHI::RenderStates& renderStates); + + //! [Optional] Not all shaders have attributes before functions. Some attributes do not exist for all RHI::APIType either. + void SetShaderStageAttributeMapList(const RHI::ShaderStageAttributeMapList& shaderStageAttributeMapList); + + //! [Required] There's always a root variant for each supervariant. + void SetRootShaderVariantAsset(Data::Asset shaderVariantAsset); + + bool EndSupervariant(); bool EndAPI(); bool End(Data::Asset& shaderAsset); - //! Clones an existing ShaderAsset and replaces the referenced Srg and Variant assets. - using ShaderResourceGroupAssets = AZStd::vector>; + //! Clones an existing ShaderAsset nd replaces the referenced Srg and Variant assets using ShaderRootVariantAssets = AZStd::vector>>; void Clone(const Data::AssetId& assetId, - const ShaderAsset* sourceShaderAsset, - const ShaderResourceGroupAssets& srgAssets, + const ShaderAsset& sourceShaderAsset, const ShaderRootVariantAssets& rootVariantAssets); private: - // Shader variants will use this draw list when they don't specify one + // Shader variants will use this draw list when they don't specify one. Name m_defaultDrawList; + + // The current supervariant is cached here to facilitate asset + // construction. Additionally, prevents BeginSupervariant to be called more than once before calling EndSupervariant. + ShaderAsset::Supervariant* m_currentSupervariant = nullptr; + }; } // namespace RPI } // namespace AZ diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator2.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator2.h deleted file mode 100644 index 263d2e5107..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator2.h +++ /dev/null @@ -1,97 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include -#include - -#include - -namespace AZ -{ - namespace RPI - { - class ShaderAssetCreator2 - : public AssetCreator - { - public: - //! Begins creation of a shader asset. - void Begin(const Data::AssetId& assetId); - - //! [Optional] Set the timestamp for when the ShaderAsset build process began. - //! This is needed to synchronize between the ShaderAsset and ShaderVariantTreeAsset when hot-reloading shaders. - void SetShaderAssetBuildTimestamp(AZStd::sys_time_t shaderAssetBuildTimestamp); - - //! [Optional] Sets the name of the shader asset from content. - void SetName(const Name& name); - - //! [Optional] Sets the DrawListTag name associated with this shader. - void SetDrawListName(const Name& name); - - //! [Required] Assigns the layout used to construct and parse shader options packed into shader variant keys. - //! Requires that the keys assigned to shader variants were constructed using the same layout. - void SetShaderOptionGroupLayout(const Ptr& shaderOptionGroupLayout); - - //! Begins the shader creation for a specific RHI API. - //! Begin must be called before the BeginAPI function is called. - //! @param type The target RHI API type. - void BeginAPI(RHI::APIType type); - - //! Begins the creation of a Supervariant for the current RHI::APIType. - //! If this is the first supervariant its name must be empty. The first - //! supervariant is always the default, nameless, supervariant. - void BeginSupervariant(const Name& name); - - void SetSrgLayoutList(const ShaderResourceGroupLayoutList& srgLayoutList); - - //! [Required] Assigns the pipeline layout descriptor shared by all variants in the shader. Shader variants - //! embedded in a single shader asset are required to use the same pipeline layout. It is not necessary to call - //! Finalize() on the pipeline layout prior to assignment, but still permitted. - void SetPipelineLayout(RHI::Ptr m_pipelineLayoutDescriptor); - - //! Assigns the contract for inputs required by the shader. - void SetInputContract(const ShaderInputContract& contract); - - //! Assigns the contract for outputs required by the shader. - void SetOutputContract(const ShaderOutputContract& contract); - - //! Assigns the render states for the draw pipeline. Ignored for non-draw pipelines. - void SetRenderStates(const RHI::RenderStates& renderStates); - - //! [Optional] Not all shaders have attributes before functions. Some attributes do not exist for all RHI::APIType either. - void SetShaderStageAttributeMapList(const RHI::ShaderStageAttributeMapList& shaderStageAttributeMapList); - - //! [Required] There's always a root variant for each supervariant. - void SetRootShaderVariantAsset(Data::Asset shaderVariantAsset); - - bool EndSupervariant(); - - bool EndAPI(); - - bool End(Data::Asset& shaderAsset); - - //! Clones an existing ShaderAsset. - void Clone(const Data::AssetId& assetId, - const ShaderAsset2& sourceShaderAsset); - - private: - - // Shader variants will use this draw list when they don't specify one. - Name m_defaultDrawList; - - // The current supervariant is cached here to facilitate asset - // construction. Additionally, prevents BeginSupervariant to be called more than once before calling EndSupervariant. - ShaderAsset2::Supervariant* m_currentSupervariant = nullptr; - - }; - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderCommonTypes.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderCommonTypes.h index 35a12fbf45..6d42ac386e 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderCommonTypes.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderCommonTypes.h @@ -18,7 +18,7 @@ namespace AZ { namespace RPI { - // Common bit positions for ShaderAsset2 and ShaderVariantAsset2 product SubIds. + // Common bit positions for ShaderAsset and ShaderVariantAsset product SubIds. static constexpr uint32_t RhiIndexBitPosition = 30; static constexpr uint32_t RhiIndexNumBits = 32 - RhiIndexBitPosition; static constexpr uint32_t RhiIndexMaxValue = (1 << RhiIndexNumBits) - 1; @@ -29,9 +29,14 @@ namespace AZ //! A wrapper around a supervariant index for type conformity. //! A supervariant index is required to find shader data from - //! Shader2 and ShaderAsset2 related APIs. - using SupervariantIndex = RHI::Handle; + //! Shader and ShaderAsset related APIs. + using SupervariantIndex = RHI::Handle; + + //! All ShaderAssets are guaranteed to have at least one supervariant. + //! It is the Default Supervariant and it is always the first supervariant + //! in the list of supervariants owned by the ShaderAsset. static const SupervariantIndex DefaultSupervariantIndex(0); + static const SupervariantIndex InvalidSupervariantIndex; enum class ShaderStageType : uint32_t diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAsset.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAsset.h deleted file mode 100644 index 5268a09963..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAsset.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include -#include - -#include - -#include - -namespace AZ -{ - namespace RHI - { - class ShaderResourceGroupLayout; - } - - namespace RPI - { - //! This asset defines the layout of a shader resource group, including any relevant metadata about reflected shader inputs. - //! - //! This is an immutable, serialized asset. It can be either serialized-in or created dynamically using ShaderResourceGroupAssetCreator. - //! See RPI::ShaderResourceGroup for runtime features based on this asset. - class ShaderResourceGroupAsset final - : public AZ::Data::AssetData - { - friend class ShaderResourceGroupAssetCreator; - friend class ShaderResourceGroupAssetHandler; - friend class ShaderResourceGroupAssetTester; - - public: - AZ_RTTI(ShaderResourceGroupAsset, "{F8C9F4AE-3F6A-45AD-B4FB-0CA415FCC2E1}", AZ::Data::AssetData); - AZ_CLASS_ALLOCATOR(ShaderResourceGroupAsset, AZ::SystemAllocator, 0); - - static const char* DisplayName; - static const char* Group; - static const char* Extension; - - static void Reflect(ReflectContext* context); - - ShaderResourceGroupAsset() = default; - - AZ_DISABLE_COPY_MOVE(ShaderResourceGroupAsset); - - //! Returns the name of the ShaderResourceGroup, which is unique within the containing shader. - const Name& GetName() const; - - //! Returns the layout that defines the low-level hardware layout for shader input bindings for the current API. - const RHI::ShaderResourceGroupLayout* GetLayout() const; - - //! Returns the layout that defines the low-level hardware layout for shader input bindings for a specific API. - const RHI::ShaderResourceGroupLayout* GetLayout(const RHI::APIType type) const; - - bool IsValid() const; - - private: - //! Called by asset creators to assign the asset to a ready state. - void SetReady(); - - bool FinalizeAfterLoad(); - - //! Find the index in the m_perAPILayout for a API type. - size_t FindAPITypeIndex(RHI::APIType type) const; - - //! The name ID of the SRG, unique within the parent shader. - Name m_name; - - //! The layout of the SRG - using APIShaderResourceGroupLayout = AZStd::pair>; - AZStd::vector m_perAPILayout; - - static constexpr const size_t InvalidAPITypeIndex = std::numeric_limits::max(); - - //! Index that indicates which ShaderResourceGroupLayout to use. - size_t m_currentAPITypeIndex = InvalidAPITypeIndex; - }; - - //! Asset handler for the Shader Resource Group asset. - class ShaderResourceGroupAssetHandler final - : public AssetHandler - { - using Base = AssetHandler; - public: - ShaderResourceGroupAssetHandler() = default; - - private: - Data::AssetHandler::LoadResult LoadAssetData( - const Data::Asset& asset, - AZStd::shared_ptr stream, - const Data::AssetFilterCB& assetLoadFilterCB) override; - Data::AssetHandler::LoadResult PostLoadInit(const Data::Asset& asset); - }; - - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.h deleted file mode 100644 index 8c7ef00ab0..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include -#include -#include - -namespace AZ -{ - namespace RPI - { - class ShaderResourceGroup; - - //! Use a ShaderResourceGroupAssetCreator to create and configure a new ShaderResourceGroupAsset. - //! Can create a ShaderResourceGroupAsset for multiple RHI APIs. - class ShaderResourceGroupAssetCreator - : public AssetCreator - { - public: - //! Begins construction of the shader resource group asset. - //! @param shaderResourceGroupName The friendly name used to identify the SRG at runtime, unique within the parent shader. - void Begin(const AZ::Data::AssetId& assetId, const Name& shaderResourceGroupName); - - //! Begins the shader resource group layout creation for a specific RHI API. - //! Begin must be called before the BeginAPI function is called. - //! @param type The target RHI API type. - void BeginAPI(RHI::APIType type); - - //! Assigns the binding slot used by all shader resource groups which use this asset. - void SetBindingSlot(uint32_t bindingSlot); - - //! Designates this SRG as ShaderVariantKey fallback - void SetShaderVariantKeyFallback(const Name& shaderInputName, uint32_t bitSize); - - //! Adds a static sampler to the shader resource group. Static samplers cannot be changed at runtime. - void AddStaticSampler(const RHI::ShaderInputStaticSamplerDescriptor& shaderInputStaticSampler); - - //! Adds a shader input to the ShaderResourceGroupLayout. - void AddShaderInput(const RHI::ShaderInputBufferDescriptor& shaderInputBuffer); - void AddShaderInput(const RHI::ShaderInputImageDescriptor& shaderInputImage); - void AddShaderInput(const RHI::ShaderInputBufferUnboundedArrayDescriptor& shaderInputBufferUnboundedArray); - void AddShaderInput(const RHI::ShaderInputImageUnboundedArrayDescriptor& shaderInputImageUnboundedArray); - void AddShaderInput(const RHI::ShaderInputSamplerDescriptor& shaderInputSampler); - void AddShaderInput(const RHI::ShaderInputConstantDescriptor& shaderInputConstant); - - //! Finalizes and assigns ownership of the asset to result, if successful. - //! Otherwise false is returned and result is left untouched. - bool End(Data::Asset& result); - - bool EndAPI(); - - private: - //! Release all temporary resources when building ends - void Cleanup(); - - RHI::APIType m_currentAPIType; - - RHI::Ptr m_shaderResourceGroupLayout; - }; - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset.h index 22ce16b9f8..7e88a99b09 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset.h @@ -13,14 +13,9 @@ #include -#include -#include #include - #include #include -#include -#include namespace AZ { @@ -35,7 +30,7 @@ namespace AZ friend class ShaderVariantAssetCreator; public: - AZ_RTTI(ShaderVariantAsset, "{9F4D654B-4439-4C61-8DCD-F1C7C5560768}", Data::AssetData); + AZ_RTTI(ShaderVariantAsset, "{51BED815-36D8-410E-90F0-1FA9FF765FBA}", Data::AssetData); static void Reflect(ReflectContext* context); @@ -43,12 +38,12 @@ namespace AZ static constexpr const char* DisplayName = "ShaderVariant"; static constexpr const char* Group = "Shader"; - static constexpr uint32_t ShaderVariantAssetSubProductType = 0; + static constexpr uint32_t ShaderVariantAssetSubProductType = 1; //! @rhiApiUniqueIndex comes from RHI::Factory::GetAPIUniqueIndex() //! @subProductType is always 0 for a regular ShaderVariantAsset, for all other debug subProducts created //! by ShaderVariantAssetBuilder this is 1+. static uint32_t MakeAssetProductSubId( - uint32_t rhiApiUniqueIndex, ShaderVariantStableId variantStableId, + uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, ShaderVariantStableId variantStableId, uint32_t subProductType = ShaderVariantAssetSubProductType); ShaderVariantAsset() = default; @@ -63,23 +58,14 @@ namespace AZ //! Returns the shader stage function associated with the provided stage enum value. const RHI::ShaderStageFunction* GetShaderStageFunction(RHI::ShaderStage shaderStage) const; - //! Returns the ShaderInputContract which describes which inputs the shader requires - const ShaderInputContract& GetInputContract() const; - - //! Returns the ShaderOuputContract which describes which outputs the shader requires - const ShaderOutputContract& GetOutputContract() const; - - //! Returns the render states for the draw pipeline. Only used for draw pipelines. - const RHI::RenderStates& GetRenderStates() const; - //! Returns whether the variant is fully baked variant (all options are static branches), or false if the //! variant uses dynamic branches for some shader options. //! If the shader variant is not fully baked, the ShaderVariantKeyFallbackValue must be correctly set when drawing. bool IsFullyBaked() const; - //! Return the timestamp when the associated ShaderAsset was built. + //! Return the timestamp when this asset was built, and it must be >= than the timestamp of the main ShaderAsset. //! This is used to synchronize versions of the ShaderAsset and ShaderVariantAsset, especially during hot-reload. - AZStd::sys_time_t GetShaderAssetBuildTimestamp() const; + AZStd::sys_time_t GetBuildTimestamp() const; bool IsRootVariant() const { return m_stableId == RPI::RootShaderVariantStableId; } @@ -92,20 +78,13 @@ namespace AZ RPI::ShaderVariantStableId m_stableId; ShaderVariantId m_shaderVariantId; - ShaderInputContract m_inputContract; - ShaderOutputContract m_outputContract; - bool m_isFullyBaked = false; - //! The only reason the render states are part of the ShaderVariantAsset - //! instead of ShaderAsset is because the m_blendStage.m_targets[i] - //! get populated by the number of colorAttachementCounts which comes from - //! the output contract which is a per variant piece of data. - RHI::RenderStates m_renderStates; + bool m_isFullyBaked = false; AZStd::array, RHI::ShaderStageCount> m_functionsByStage; //! Used to synchronize versions of the ShaderAsset and ShaderVariantAsset, especially during hot-reload. - AZStd::sys_time_t m_shaderAssetBuildTimestamp = 0; + AZStd::sys_time_t m_buildTimestamp = 0; }; class ShaderVariantAssetHandler final diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset2.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset2.h deleted file mode 100644 index 82e868fda8..0000000000 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset2.h +++ /dev/null @@ -1,104 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#pragma once - -#include - -#include -#include -#include - -namespace AZ -{ - namespace RPI - { - //! A ShaderVariantAsset2 contains the shader byte code for each shader stage (Vertex, Fragment, Tessellation, etc) for a given RHI::APIType (dx12, vulkan, metal, etc). - //! One independent file per RHI::APIType. - class ShaderVariantAsset2 final - : public Data::AssetData - { - friend class ShaderVariantAssetHandler2; - friend class ShaderVariantAssetCreator2; - - public: - AZ_RTTI(ShaderVariantAsset2, "{51BED815-36D8-410E-90F0-1FA9FF765FBA}", Data::AssetData); - - static void Reflect(ReflectContext* context); - - static constexpr const char* Extension = "azshadervariant2"; - static constexpr const char* DisplayName = "ShaderVariant"; - static constexpr const char* Group = "Shader"; - - static constexpr uint32_t ShaderVariantAsset2SubProductType = 1; - //! @rhiApiUniqueIndex comes from RHI::Factory::GetAPIUniqueIndex() - //! @subProductType is always 0 for a regular ShaderVariantAsset2, for all other debug subProducts created - //! by ShaderVariantAssetBuilder2 this is 1+. - static uint32_t MakeAssetProductSubId( - uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, ShaderVariantStableId variantStableId, - uint32_t subProductType = ShaderVariantAsset2SubProductType); - - ShaderVariantAsset2() = default; - ~ShaderVariantAsset2() = default; - - AZ_DISABLE_COPY_MOVE(ShaderVariantAsset2); - - RPI::ShaderVariantStableId GetStableId() const { return m_stableId; } - - const ShaderVariantId& GetShaderVariantId() const { return m_shaderVariantId; } - - //! Returns the shader stage function associated with the provided stage enum value. - const RHI::ShaderStageFunction* GetShaderStageFunction(RHI::ShaderStage shaderStage) const; - - //! Returns whether the variant is fully baked variant (all options are static branches), or false if the - //! variant uses dynamic branches for some shader options. - //! If the shader variant is not fully baked, the ShaderVariantKeyFallbackValue must be correctly set when drawing. - bool IsFullyBaked() const; - - //! Return the timestamp when this asset was built, and it must be >= than the timestamp of the main ShaderAsset. - //! This is used to synchronize versions of the ShaderAsset and ShaderVariantAsset2, especially during hot-reload. - AZStd::sys_time_t GetBuildTimestamp() const; - - bool IsRootVariant() const { return m_stableId == RPI::RootShaderVariantStableId; } - - private: - //! Called by asset creators to assign the asset to a ready state. - void SetReady(); - bool FinalizeAfterLoad(); - - //! See AZ::RPI::ShaderVariantListSourceData::VariantInfo::m_stableId for details. - RPI::ShaderVariantStableId m_stableId; - - ShaderVariantId m_shaderVariantId; - - bool m_isFullyBaked = false; - - AZStd::array, RHI::ShaderStageCount> m_functionsByStage; - - //! Used to synchronize versions of the ShaderAsset and ShaderVariantAsset2, especially during hot-reload. - AZStd::sys_time_t m_buildTimestamp = 0; - }; - - class ShaderVariantAssetHandler2 final - : public AssetHandler - { - using Base = AssetHandler; - public: - ShaderVariantAssetHandler2() = default; - - private: - LoadResult LoadAssetData(const Data::Asset& asset, AZStd::shared_ptr stream, const AZ::Data::AssetFilterCB& assetLoadFilterCB) override; - bool PostLoadInit(const Data::Asset& asset); - }; - - } // namespace RPI - -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/System/SceneDescriptor.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/System/SceneDescriptor.h index 371c8afced..6a9d5c200c 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/System/SceneDescriptor.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Reflect/System/SceneDescriptor.h @@ -12,7 +12,6 @@ #pragma once -#include #include #include #include diff --git a/Gems/Atom/RPI/Code/Source/RPI.Builders/BuilderComponent.cpp b/Gems/Atom/RPI/Code/Source/RPI.Builders/BuilderComponent.cpp index 70752bf02b..a67bce4acb 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Builders/BuilderComponent.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Builders/BuilderComponent.cpp @@ -26,8 +26,6 @@ #include #include #include -#include -#include #include #include #include @@ -36,7 +34,6 @@ #include #include #include -#include #include #include @@ -90,8 +87,6 @@ namespace AZ m_assetWorkers.emplace_back(MakeAssetBuilder()); m_assetHandlers.emplace_back(MakeAssetHandler()); - m_assetHandlers.emplace_back(MakeAssetHandler()); - m_assetHandlers.emplace_back(MakeAssetHandler()); m_assetHandlers.emplace_back(MakeAssetHandler()); m_assetHandlers.emplace_back(MakeAssetHandler()); m_assetHandlers.emplace_back(MakeAssetHandler()); @@ -101,7 +96,6 @@ namespace AZ m_assetHandlers.emplace_back(MakeAssetHandler()); m_assetHandlers.emplace_back(MakeAssetHandler()); m_assetHandlers.emplace_back(MakeAssetHandler()); - m_assetHandlers.emplace_back(MakeAssetHandler()); m_assetHandlers.emplace_back(MakeAssetHandler()); m_assetHandlers.emplace_back(MakeAssetHandler()); m_assetHandlers.emplace_back(MakeAssetHandler()); diff --git a/Gems/Atom/RPI/Code/Source/RPI.Builders/Material/MaterialBuilder.cpp b/Gems/Atom/RPI/Code/Source/RPI.Builders/Material/MaterialBuilder.cpp index d31b6b3802..0cd0b7cff1 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Builders/Material/MaterialBuilder.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Builders/Material/MaterialBuilder.cpp @@ -19,7 +19,6 @@ #include #include -#include #include #include #include diff --git a/Gems/Atom/RPI/Code/Source/RPI.Builders/Pass/PassBuilder.cpp b/Gems/Atom/RPI/Code/Source/RPI.Builders/Pass/PassBuilder.cpp index 1b02d5eb48..e2d951fcdb 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Builders/Pass/PassBuilder.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Builders/Pass/PassBuilder.cpp @@ -41,7 +41,7 @@ namespace AZ { AssetBuilderSDK::AssetBuilderDesc builder; builder.m_name = PassBuilderJobKey; - builder.m_version = 11; + builder.m_version = 12; // ATOM-15472 builder.m_busId = azrtti_typeid(); builder.m_createJobFunction = AZStd::bind(&PassBuilder::CreateJobs, this, AZStd::placeholders::_1, AZStd::placeholders::_2); builder.m_processJobFunction = AZStd::bind(&PassBuilder::ProcessJob, this, AZStd::placeholders::_1, AZStd::placeholders::_2); @@ -114,23 +114,6 @@ namespace AZ AZStd::string path = assetReference->m_filePath; uint32_t subId = 0; - // [GFX TODO][ATOM-2789] This is a temporary hack that assumes anything ending with ":foo" is indicating the name of an SRG which is used to generate the SRG AssetId - if (path.find(':') != AZStd::string::npos) - { - AZStd::vector tokens; - AzFramework::StringFunc::Tokenize(assetReference->m_filePath.c_str(), tokens, ":"); - if (tokens.size() == 2) - { - path = tokens[0]; - subId = AssetUtils::CalcSrgProductSubId(Name{tokens[1]}); - } - else - { - AZ_Error(PassBuilderName, false, "Path not formatted correctly [%s]", assetReference->m_filePath.c_str()); - foundProblems = true; - } - } - auto assetIdOutcome = AssetUtils::MakeAssetId(path, subId); if (assetIdOutcome) diff --git a/Gems/Atom/RPI/Code/Source/RPI.Edit/Common/AssetUtils.cpp b/Gems/Atom/RPI/Code/Source/RPI.Edit/Common/AssetUtils.cpp index 32cffc771a..3cefa696c3 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Edit/Common/AssetUtils.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Edit/Common/AssetUtils.cpp @@ -21,12 +21,6 @@ namespace AZ { namespace AssetUtils { - uint32_t CalcSrgProductSubId(const Name& srgName) - { - //[GFX TODO] Make SrgLayoutBuilder share this code after the gems reorg is complete - return static_cast(AZStd::hash()(srgName.GetStringView()) & 0xFFFFFFFF); - } - AZStd::string GetProductPathByAssetId(const AZ::Data::AssetId& assetId) { AZStd::string productPath; diff --git a/Gems/Atom/RPI/Code/Source/RPI.Edit/Material/MaterialTypeSourceData.cpp b/Gems/Atom/RPI/Code/Source/RPI.Edit/Material/MaterialTypeSourceData.cpp index 109af70166..ea623a1f48 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Edit/Material/MaterialTypeSourceData.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Edit/Material/MaterialTypeSourceData.cpp @@ -324,7 +324,7 @@ namespace AZ ); // Gather UV names - const ShaderInputContract& shaderInputContract = shaderAsset.GetValue()->GetRootVariant()->GetInputContract(); + const ShaderInputContract& shaderInputContract = shaderAsset.GetValue()->GetInputContract(); for (const ShaderInputContract::StreamChannelInfo& channel : shaderInputContract.m_streamChannels) { const RHI::ShaderSemantic& semantic = channel.m_semantic; diff --git a/Gems/Atom/RPI/Code/Source/RPI.Edit/Shader/ShaderVariantAssetCreator.cpp b/Gems/Atom/RPI/Code/Source/RPI.Edit/Shader/ShaderVariantAssetCreator.cpp index cca35533fe..e21c87648f 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Edit/Shader/ShaderVariantAssetCreator.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Edit/Shader/ShaderVariantAssetCreator.cpp @@ -13,15 +13,13 @@ #include -#include -#include #include namespace AZ { namespace RPI { - void ShaderVariantAssetCreator::Begin(const AZ::Data::AssetId& assetId, const ShaderVariantId& shaderVariantId, RPI::ShaderVariantStableId stableId, const ShaderOptionGroupLayout* shaderOptionGroupLayout) + void ShaderVariantAssetCreator::Begin(const AZ::Data::AssetId& assetId, const ShaderVariantId& shaderVariantId, RPI::ShaderVariantStableId stableId, bool isFullyBaked) { BeginCommon(assetId); @@ -29,16 +27,7 @@ namespace AZ { m_asset->m_stableId = stableId; m_asset->m_shaderVariantId = shaderVariantId; - - if (shaderOptionGroupLayout) - { - ShaderOptionGroup shaderOptions{shaderOptionGroupLayout, shaderVariantId}; - m_asset->m_isFullyBaked = shaderOptions.IsFullySpecified(); - } - else if(shaderVariantId.m_mask.any()) - { - ReportError("ShaderVariantId is not empty, but no ShaderOptionGroupLayout was provided"); - } + m_asset->m_isFullyBaked = isFullyBaked; } } @@ -55,6 +44,12 @@ namespace AZ return false; } + if (!m_asset->m_buildTimestamp) + { + ReportError("Invalid timestamp"); + return false; + } + bool foundDrawFunctions = false; bool foundDispatchFunctions = false; @@ -91,27 +86,7 @@ namespace AZ return false; } - const ShaderInputContract& shaderInputContract = m_asset->m_inputContract; - // Validate that each stream ID appears only once. - for (const auto& channel : shaderInputContract.m_streamChannels) - { - int count = 0; - for (const auto& searchChannel : shaderInputContract.m_streamChannels) - { - if (channel.m_semantic == searchChannel.m_semantic) - { - ++count; - } - } - - if (count > 1) - { - ReportError("Input stream channel '%s' appears multiple times. For Shader Variant with StableId '%u' ", - channel.m_semantic.ToString().c_str(), m_asset->m_stableId); - return false; - } - } m_asset->SetReady(); return EndCommon(result); @@ -121,11 +96,11 @@ namespace AZ ///////////////////////////////////////////////////////////////////// // Methods for all shader variant types - void ShaderVariantAssetCreator::SetShaderAssetBuildTimestamp(AZStd::sys_time_t shaderAssetBuildTimestamp) + void ShaderVariantAssetCreator::SetBuildTimestamp(AZStd::sys_time_t buildTimestamp) { if (ValidateIsReady()) { - m_asset->m_shaderAssetBuildTimestamp = shaderAssetBuildTimestamp; + m_asset->m_buildTimestamp = buildTimestamp; } } @@ -137,33 +112,5 @@ namespace AZ } } - ///////////////////////////////////////////////////////////////////// - // Methods for PipelineStateType::Draw variants. - - void ShaderVariantAssetCreator::SetInputContract(const ShaderInputContract& contract) - { - if (ValidateIsReady()) - { - m_asset->m_inputContract = contract; - } - } - - void ShaderVariantAssetCreator::SetOutputContract(const ShaderOutputContract& contract) - { - if (ValidateIsReady()) - { - m_asset->m_outputContract = contract; - } - } - - void ShaderVariantAssetCreator::SetRenderStates(const RHI::RenderStates& renderStates) - { - if (ValidateIsReady()) - { - m_asset->m_renderStates = renderStates; - } - } - - } // namespace RPI } // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Edit/Shader/ShaderVariantAssetCreator2.cpp b/Gems/Atom/RPI/Code/Source/RPI.Edit/Shader/ShaderVariantAssetCreator2.cpp deleted file mode 100644 index 2936ed50f9..0000000000 --- a/Gems/Atom/RPI/Code/Source/RPI.Edit/Shader/ShaderVariantAssetCreator2.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#include - -#include - -#include -#include -#include - -namespace AZ -{ - namespace RPI - { - void ShaderVariantAssetCreator2::Begin(const AZ::Data::AssetId& assetId, const ShaderVariantId& shaderVariantId, RPI::ShaderVariantStableId stableId, bool isFullyBaked) - { - BeginCommon(assetId); - - if (ValidateIsReady()) - { - m_asset->m_stableId = stableId; - m_asset->m_shaderVariantId = shaderVariantId; - m_asset->m_isFullyBaked = isFullyBaked; - } - } - - bool ShaderVariantAssetCreator2::End(Data::Asset& result) - { - if (!ValidateIsReady()) - { - return false; - } - - if (!m_asset->FinalizeAfterLoad()) - { - ReportError("Failed to finalize the ShaderResourceGroupAsset."); - return false; - } - - bool foundDrawFunctions = false; - bool foundDispatchFunctions = false; - - if (m_asset->GetShaderStageFunction(RHI::ShaderStage::Vertex) || - m_asset->GetShaderStageFunction(RHI::ShaderStage::Tessellation) || - m_asset->GetShaderStageFunction(RHI::ShaderStage::Fragment)) - { - foundDrawFunctions = true; - } - - if (m_asset->GetShaderStageFunction(RHI::ShaderStage::Compute)) - { - foundDispatchFunctions = true; - } - - - if (foundDrawFunctions && foundDispatchFunctions) - { - ReportError("ShaderVariant contains both Draw functions and Dispatch functions."); - return false; - } - - if (m_asset->GetShaderStageFunction(RHI::ShaderStage::Fragment) && - !m_asset->GetShaderStageFunction(RHI::ShaderStage::Vertex)) - { - ReportError("Shader Variant with StableId '%u' has a fragment function but no vertex function.", m_asset->m_stableId); - return false; - } - - if (m_asset->GetShaderStageFunction(RHI::ShaderStage::Tessellation) && - !m_asset->GetShaderStageFunction(RHI::ShaderStage::Vertex)) - { - ReportError("Shader Variant with StableId '%u' has a tessellation function but no vertex function.", m_asset->m_stableId); - return false; - } - - - - m_asset->SetReady(); - return EndCommon(result); - } - - - ///////////////////////////////////////////////////////////////////// - // Methods for all shader variant types - - void ShaderVariantAssetCreator2::SetBuildTimestamp(AZStd::sys_time_t buildTimestamp) - { - if (ValidateIsReady()) - { - m_asset->m_buildTimestamp = buildTimestamp; - } - } - - void ShaderVariantAssetCreator2::SetShaderFunction(RHI::ShaderStage shaderStage, RHI::Ptr shaderStageFunction) - { - if (ValidateIsReady()) - { - m_asset->m_functionsByStage[static_cast(shaderStage)] = shaderStageFunction; - } - } - - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/DynamicDraw/DynamicDrawContext.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/DynamicDraw/DynamicDrawContext.cpp index 00c2122825..1a575c9385 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/DynamicDraw/DynamicDrawContext.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/DynamicDraw/DynamicDrawContext.cpp @@ -129,17 +129,17 @@ namespace AZ } // Create per context srg if it exist - auto shaderAsset = shader->GetAsset(); - auto contextSrgAsset = shaderAsset->FindShaderResourceGroupAsset(Name{ PerContextSrgName }); - if (contextSrgAsset.GetId().IsValid()) + auto contextSrgLayout = m_shader->FindShaderResourceGroupLayout(Name { PerContextSrgName }); + if (contextSrgLayout) { - m_srgPerContext = AZ::RPI::ShaderResourceGroup::Create(contextSrgAsset); + m_srgPerContext = AZ::RPI::ShaderResourceGroup::Create( + m_shader->GetAsset(), m_shader->GetSupervariantIndex(), Name { PerContextSrgName }); m_srgGroups[0] = m_srgPerContext->GetRHIShaderResourceGroup(); } // Save per draw srg asset which can be used to create draw srg later - m_drawSrgAsset = shaderAsset->FindShaderResourceGroupAsset(SrgBindingSlot::Draw); - m_hasShaderVariantKeyFallbackEntry = (m_drawSrgAsset && m_drawSrgAsset->GetLayout()->HasShaderVariantKeyFallbackEntry()); + m_drawSrgLayout = m_shader->FindShaderResourceGroupLayout(SrgBindingSlot::Draw); + m_hasShaderVariantKeyFallbackEntry = (m_drawSrgLayout && m_drawSrgLayout->HasShaderVariantKeyFallbackEntry()); } void DynamicDrawContext::InitVertexFormat(const AZStd::vector& vertexChannels) @@ -397,7 +397,7 @@ namespace AZ return; } - if (m_drawSrgAsset.GetId().IsValid() && drawSrg == nullptr) + if (!m_drawSrgLayout) { AZ_Assert(false, "PerDrawSrg need to be provided since the shader uses it"); return; @@ -487,7 +487,7 @@ namespace AZ return; } - if (m_drawSrgAsset.GetId().IsValid() && drawSrg == nullptr) + if (!m_drawSrgLayout) { AZ_Assert(false, "PerDrawSrg need to be provided since the shader uses it"); return; @@ -563,11 +563,11 @@ namespace AZ Data::Instance DynamicDrawContext::NewDrawSrg() { - if (!m_drawSrgAsset.IsReady()) + if (!m_drawSrgLayout) { return nullptr; } - auto drawSrg = AZ::RPI::ShaderResourceGroup::Create(m_drawSrgAsset); + auto drawSrg = AZ::RPI::ShaderResourceGroup::Create(m_shader->GetAsset(), m_shader->GetSupervariantIndex(), m_drawSrgLayout->GetName()); // Set fallback value for shader variant if draw srg contains constant for shader variant fallback if (m_hasShaderVariantKeyFallbackEntry) diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Image/ImageSystem.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Image/ImageSystem.cpp index f7cdc2ff71..2f29058020 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Image/ImageSystem.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Image/ImageSystem.cpp @@ -132,13 +132,10 @@ namespace AZ } // Register streaming image controller instance database. - // Note, third party gems may add new handlers to this InstanceDatabase as well, to handle custom implementations. - { - Data::InstanceDatabase::Create(azrtti_typeid()); - - Data::InstanceDatabase::Instance().AddHandler( - azrtti_typeid(), &DefaultStreamingImageController::CreateInternal); + Data::InstanceHandler handler; + handler.m_createFunction = DefaultStreamingImageController::CreateInternal; + Data::InstanceDatabase::Create(azrtti_typeid(), handler); } m_defaultStreamingImageControllerAsset = diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Material/Material.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Material/Material.cpp index 4a2718b9d5..4e65d68d6c 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Material/Material.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Material/Material.cpp @@ -63,13 +63,13 @@ namespace AZ AZ_TRACE_METHOD(); m_materialAsset = { &materialAsset, AZ::Data::AssetLoadBehavior::PreLoad }; - - // Cache off pointers to some key data structures from the material type... - auto& srgAsset = m_materialAsset->GetMaterialSrgAsset(); - if (srgAsset) + // Cache off pointers to some key data structures from the material type... + auto srgLayout = m_materialAsset->GetMaterialSrgLayout(); + if (srgLayout) { - m_shaderResourceGroup = ShaderResourceGroup::Create(m_materialAsset->GetMaterialSrgAsset()); + auto shaderAsset = m_materialAsset->GetMaterialTypeAsset()->GetShaderAssetForMaterialSrg(); + m_shaderResourceGroup = ShaderResourceGroup::Create(shaderAsset, DefaultSupervariantIndex, srgLayout->GetName()); if (m_shaderResourceGroup) { diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/MeshDrawPacket.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/MeshDrawPacket.cpp index b1265b1228..79e1f7d1d0 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/MeshDrawPacket.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/MeshDrawPacket.cpp @@ -166,8 +166,6 @@ namespace AZ return false; } - const AZ::Data::Asset& drawSrgAsset = shader->GetAsset()->GetDrawSrgAsset(); - // Set all unspecified shader options to default values, so that we get the most specialized variant possible. // (because FindVariantStableId treats unspecified options as a request specifically for a variant that doesn't specify those options) // [GFX TODO][ATOM-3883] We should consider updating the FindVariantStableId algorithm to handle default values for us, and remove this step here. @@ -177,7 +175,7 @@ namespace AZ // [GFX_TODO][ATOM-14476]: according to this usage, we should make the shader input contract uniform across all shader variants. m_modelLod->CheckOptionalStreams( shaderOptions, - shader->GetVariant(ShaderAsset::RootShaderVariantStableId).GetInputContract(), + shader->GetInputContract(), m_modelLodMeshIndex, m_materialModelUvMap, m_material->GetAsset()->GetMaterialTypeAsset()->GetUvNameMap()); @@ -215,7 +213,7 @@ namespace AZ pipelineStateDescriptor.m_inputStreamLayout, streamBufferViews, &uvStreamTangentBitmask, - variant.GetInputContract(), + shader->GetInputContract(), m_modelLodMeshIndex, m_materialModelUvMap, m_material->GetAsset()->GetMaterialTypeAsset()->GetUvNameMap())) @@ -223,14 +221,15 @@ namespace AZ return false; } + auto drawSrgLayout = shader->GetAsset()->GetDrawSrgLayout(shader->GetSupervariantIndex()); Data::Instance drawSrg; - if (drawSrgAsset) + if (drawSrgLayout) { AZ_PROFILE_SCOPE(Debug::ProfileCategory::AzRender, "create drawSrg"); // If the DrawSrg exists we must create and bind it, otherwise the CommandList will fail validation for SRG being null - drawSrg = RPI::ShaderResourceGroup::Create(drawSrgAsset); + drawSrg = RPI::ShaderResourceGroup::Create(shader->GetAsset(), shader->GetSupervariantIndex(), drawSrgLayout->GetName()); - if (!variant.IsFullyBaked() && drawSrgAsset->GetLayout()->HasShaderVariantKeyFallbackEntry()) + if (!variant.IsFullyBaked() && drawSrgLayout->HasShaderVariantKeyFallbackEntry()) { drawSrg->SetShaderVariantKeyFallbackValue(shaderOptions.GetShaderVariantKeyFallbackValue()); } diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/AttachmentReadback.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/AttachmentReadback.cpp index 88d3eb27fd..a7262517dd 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/AttachmentReadback.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/AttachmentReadback.cpp @@ -134,10 +134,10 @@ namespace AZ } // Load SRG - const Data::Asset& srgAsset = m_decomposeShader->FindShaderResourceGroupAsset(Name{ "ObjectSrg" }); - if (srgAsset) + const auto srgLayout = m_decomposeShader->FindShaderResourceGroupLayout(SrgBindingSlot::Object); + if (srgLayout) { - m_decomposeSrg = ShaderResourceGroup::Create(srgAsset); + m_decomposeSrg = ShaderResourceGroup::Create(m_decomposeShader->GetAsset(), m_decomposeShader->GetSupervariantIndex(), srgLayout->GetName()); if (!m_decomposeSrg) { diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/ComputePass.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/ComputePass.cpp index 5077ccaa51..0253ef0c9b 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/ComputePass.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/ComputePass.cpp @@ -87,10 +87,10 @@ namespace AZ } // Load Pass SRG... - const Data::Asset& passSrgAsset = m_shader->FindShaderResourceGroupAsset(SrgBindingSlot::Pass); - if (passSrgAsset) + const auto passSrgLayout = m_shader->FindShaderResourceGroupLayout(SrgBindingSlot::Pass); + if (passSrgLayout) { - m_shaderResourceGroup = ShaderResourceGroup::Create(passSrgAsset); + m_shaderResourceGroup = ShaderResourceGroup::Create(shaderAsset, m_shader->GetSupervariantIndex(), passSrgLayout->GetName()); AZ_Assert(m_shaderResourceGroup, "[ComputePass '%s']: Failed to create SRG from shader asset '%s'", GetPathName().GetCStr(), @@ -100,10 +100,10 @@ namespace AZ } // Load Draw SRG... - const Data::Asset& drawSrgAsset = m_shader->FindShaderResourceGroupAsset(SrgBindingSlot::Draw); - if (drawSrgAsset) + const auto drawSrgLayout = m_shader->FindShaderResourceGroupLayout(SrgBindingSlot::Draw); + if (drawSrgLayout) { - m_drawSrg = ShaderResourceGroup::Create(drawSrgAsset); + m_drawSrg = ShaderResourceGroup::Create(shaderAsset, m_shader->GetSupervariantIndex(), drawSrgLayout->GetName()); } RHI::DispatchDirect dispatchArgs; diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/FullscreenTrianglePass.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/FullscreenTrianglePass.cpp index a854867998..7235bb343d 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/FullscreenTrianglePass.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/FullscreenTrianglePass.cpp @@ -100,10 +100,10 @@ namespace AZ } // Load Pass SRG - const Data::Asset& passSrgAsset = m_shader->FindShaderResourceGroupAsset(Name{ "PassSrg" }); - if (passSrgAsset) + const auto passSrgLayout = m_shader->FindShaderResourceGroupLayout(SrgBindingSlot::Pass); + if (passSrgLayout) { - m_shaderResourceGroup = ShaderResourceGroup::Create(passSrgAsset); + m_shaderResourceGroup = ShaderResourceGroup::Create(shaderAsset, m_shader->GetSupervariantIndex(), passSrgLayout->GetName()); AZ_Assert(m_shaderResourceGroup, "[FullscreenTrianglePass '%s']: Failed to create SRG from shader asset '%s'", GetPathName().GetCStr(), @@ -114,10 +114,10 @@ namespace AZ // Load Draw SRG // this is necessary since the shader may have options, which require a default draw SRG - const Data::Asset& drawSrgAsset = m_shader->FindShaderResourceGroupAsset(Name{ "DrawSrg" }); - if (drawSrgAsset) + const auto drawSrgLayout = m_shader->FindShaderResourceGroupLayout(SrgBindingSlot::Draw); + if (drawSrgLayout) { - m_drawShaderResourceGroup = ShaderResourceGroup::Create(drawSrgAsset); + m_drawShaderResourceGroup = ShaderResourceGroup::Create(shaderAsset, m_shader->GetSupervariantIndex(), drawSrgLayout->GetName()); } // Store stencil reference value for the draw call diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/RasterPass.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/RasterPass.cpp index baf1d22da5..13f2784a2d 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/RasterPass.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/RasterPass.cpp @@ -23,7 +23,6 @@ #include #include -#include namespace AZ { @@ -51,26 +50,32 @@ namespace AZ SetDrawListTag(rasterData->m_drawListTag); m_drawListSortType = rasterData->m_drawListSortType; - // Get SRG asset - Data::Asset srgAsset; - if (rasterData->m_passSrgReference.m_assetId.IsValid()) + // Get the shader asset that contains the SRG Layout. + Data::Asset shaderAsset; + if (rasterData->m_passSrgShaderReference.m_assetId.IsValid()) { - srgAsset = AssetUtils::LoadAssetById(rasterData->m_passSrgReference.m_assetId, AssetUtils::TraceLevel::Error); + shaderAsset = AssetUtils::LoadAssetById(rasterData->m_passSrgShaderReference.m_assetId, AssetUtils::TraceLevel::Error); } - else if (!rasterData->m_passSrgReference.m_filePath.empty()) + else if (!rasterData->m_passSrgShaderReference.m_filePath.empty()) { - srgAsset = AssetUtils::LoadAssetByProductPath(rasterData->m_passSrgReference.m_filePath.c_str(), AssetUtils::TraceLevel::Error); + shaderAsset = AssetUtils::LoadAssetByProductPath( + rasterData->m_passSrgShaderReference.m_filePath.c_str(), AssetUtils::TraceLevel::Error); } - if (srgAsset) + if (shaderAsset) { - m_shaderResourceGroup = ShaderResourceGroup::Create(srgAsset); + auto supervariantIndex = DefaultSupervariantIndex; + const auto srgLayout = shaderAsset->FindShaderResourceGroupLayout(SrgBindingSlot::Pass, supervariantIndex); + if (srgLayout) + { + m_shaderResourceGroup = ShaderResourceGroup::Create(shaderAsset, supervariantIndex, srgLayout->GetName()); - AZ_Assert(m_shaderResourceGroup, "[RasterPass '%s']: Failed to create SRG from shader asset '%s'", - GetPathName().GetCStr(), - rasterData->m_passSrgReference.m_filePath.data()); + AZ_Assert( + m_shaderResourceGroup, "[RasterPass '%s']: Failed to create SRG from shader asset '%s'", GetPathName().GetCStr(), + rasterData->m_passSrgShaderReference.m_filePath.data()); - PassUtils::BindDataMappingsToSrg(descriptor, m_shaderResourceGroup.get()); + PassUtils::BindDataMappingsToSrg(descriptor, m_shaderResourceGroup.get()); + } } diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/Specific/ImageAttachmentPreviewPass.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/Specific/ImageAttachmentPreviewPass.cpp index e2fdfb48e3..826b27acc2 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/Specific/ImageAttachmentPreviewPass.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Pass/Specific/ImageAttachmentPreviewPass.cpp @@ -25,7 +25,6 @@ #include #include -#include namespace AZ { @@ -259,10 +258,10 @@ namespace AZ } // Load SRG - const Data::Asset& srgAsset = m_shader->FindShaderResourceGroupAsset(Name{ "PassSrg" }); - if (srgAsset) + const auto srgLayout = m_shader->FindShaderResourceGroupLayout(SrgBindingSlot::Pass); + if (srgLayout) { - m_passSrg = ShaderResourceGroup::Create(srgAsset); + m_passSrg = ShaderResourceGroup::Create(shaderAsset, m_shader->GetSupervariantIndex(), srgLayout->GetName()); if (!m_passSrg) { diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp index 44be2dabeb..768869834f 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp @@ -112,8 +112,9 @@ namespace AZ void RPISystem::Shutdown() { m_viewportContextManager.Shutdown(); - m_viewSrgAsset.Reset(); - m_sceneSrgAsset.Reset(); + m_viewSrgLayout = nullptr; + m_sceneSrgLayout = nullptr; + m_commonShaderAssetForSrgs.Reset(); #if AZ_RPI_PRINT_GLOBAL_STATE_ON_ASSERT Debug::TraceMessageBus::Handler::BusDisconnect(); @@ -212,16 +213,22 @@ namespace AZ return nullptr; } - Data::Asset RPISystem::GetSceneSrgAsset() const + Data::Asset RPISystem::GetCommonShaderAssetForSrgs() const { AZ_Assert(m_systemAssetsInitialized, "InitializeSystemAssets() should be called once when asset catalog loaded'"); - return m_sceneSrgAsset; + return m_commonShaderAssetForSrgs; } - Data::Asset RPISystem::GetViewSrgAsset() const + RHI::Ptr RPISystem::GetSceneSrgLayout() const { AZ_Assert(m_systemAssetsInitialized, "InitializeSystemAssets() should be called once when asset catalog loaded'"); - return m_viewSrgAsset; + return m_sceneSrgLayout; + } + + RHI::Ptr RPISystem::GetViewSrgLayout() const + { + AZ_Assert(m_systemAssetsInitialized, "InitializeSystemAssets() should be called once when asset catalog loaded'"); + return m_viewSrgLayout; } void RPISystem::OnSystemTick() @@ -353,14 +360,23 @@ namespace AZ m_descriptor.m_rhiSystemDescriptor.m_platformLimits = RPI::GetDataFromAnyAsset(platformLimitsAsset); } - m_viewSrgAsset = AssetUtils::LoadCriticalAsset( m_descriptor.m_viewSrgAssetPath.c_str()); - if (!m_viewSrgAsset.IsReady()) + m_commonShaderAssetForSrgs = AssetUtils::LoadCriticalAsset( m_descriptor.m_commonSrgsShaderAssetPath.c_str()); + if (!m_commonShaderAssetForSrgs.IsReady()) { return; } - m_sceneSrgAsset = AssetUtils::LoadCriticalAsset(m_descriptor.m_sceneSrgAssetPath.c_str()); - if (!m_sceneSrgAsset.IsReady()) + m_sceneSrgLayout = m_commonShaderAssetForSrgs->FindShaderResourceGroupLayout(SrgBindingSlot::Scene); + if (!m_sceneSrgLayout) { + AZ_Error("RPISystem", false, "Failed to find SceneSrg by slot=<%u> from shader asset at path <%s>", SrgBindingSlot::Scene, + m_descriptor.m_commonSrgsShaderAssetPath.c_str()); + return; + } + m_viewSrgLayout = m_commonShaderAssetForSrgs->FindShaderResourceGroupLayout(SrgBindingSlot::View); + if (!m_viewSrgLayout) + { + AZ_Error("RPISystem", false, "Failed to find ViewSrg by slot=<%u> from shader asset at path <%s>", SrgBindingSlot::View, + m_descriptor.m_commonSrgsShaderAssetPath.c_str()); return; } diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Scene.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Scene.cpp index 62efc3dccb..d87f119a7a 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Scene.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Scene.cpp @@ -42,11 +42,11 @@ namespace AZ scene->EnableFeatureProcessor(FeatureProcessorId{ fpId }); } - Data::Asset sceneSrgAsset = RPISystemInterface::Get()->GetSceneSrgAsset(); - - if (sceneSrgAsset.IsReady()) + auto sceneSrgLayout = RPISystemInterface::Get()->GetSceneSrgLayout(); + if (sceneSrgLayout) { - scene->m_srg = ShaderResourceGroup::Create(sceneSrgAsset); + auto shaderAsset = RPISystemInterface::Get()->GetCommonShaderAssetForSrgs(); + scene->m_srg = ShaderResourceGroup::Create(shaderAsset, DefaultSupervariantIndex, sceneSrgLayout->GetName()); } return ScenePtr(scene); diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/Shader.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/Shader.cpp index 7194c524ae..d74ffbfca2 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/Shader.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/Shader.cpp @@ -28,24 +28,37 @@ namespace AZ { namespace RPI { - Data::Instance Shader::FindOrCreate(const Data::Asset& shaderAsset) + Data::Instance Shader::FindOrCreate(const Data::Asset& shaderAsset, const Name& supervariantName) { - return Data::InstanceDatabase::Instance().FindOrCreate( - Data::InstanceId::CreateFromAssetId(shaderAsset.GetId()), - shaderAsset); + auto anySupervariantName = AZStd::any(supervariantName); + Data::Instance shaderInstance = Data::InstanceDatabase::Instance().FindOrCreate( + Data::InstanceId::CreateFromAssetId(shaderAsset.GetId()), shaderAsset, &anySupervariantName); + return shaderInstance; } - Data::Instance Shader::CreateInternal(ShaderAsset& shaderAsset) + Data::Instance Shader::FindOrCreate(const Data::Asset& shaderAsset) { - Data::Instance shader = aznew Shader(); - const RHI::ResultCode resultCode = shader->Init(shaderAsset); + return FindOrCreate(shaderAsset, AZ::Name { "" }); + } - if (resultCode == RHI::ResultCode::Success) + Data::Instance Shader::CreateInternal([[maybe_unused]] ShaderAsset& shaderAsset, const AZStd::any* anySupervariantName) + { + AZ_Assert(anySupervariantName != nullptr, "Invalid supervariant name param"); + auto supervariantName = AZStd::any_cast(*anySupervariantName); + auto supervariantIndex = shaderAsset.GetSupervariantIndex(supervariantName); + if (!supervariantIndex.IsValid()) { - return shader; + AZ_Error("Shader", false, "Supervariant with name %s, was not found in shader %s", supervariantName.GetCStr(), shaderAsset.GetName().GetCStr()); + return nullptr; } - return nullptr; + Data::Instance shader = aznew Shader(supervariantIndex); + const RHI::ResultCode resultCode = shader->Init(shaderAsset); + if (resultCode != RHI::ResultCode::Success) + { + return nullptr; + } + return shader; } Shader::~Shader() @@ -55,6 +68,8 @@ namespace AZ RHI::ResultCode Shader::Init(ShaderAsset& shaderAsset) { + AZ_Assert(m_supervariantIndex != InvalidSupervariantIndex, "Invalid supervariant index"); + ShaderVariantFinderNotificationBus::Handler::BusDisconnect(); ShaderVariantFinderNotificationBus::Handler::BusConnect(shaderAsset.GetId()); @@ -68,7 +83,7 @@ namespace AZ AZStd::unique_lock lock(m_variantCacheMutex); m_shaderVariants.clear(); } - m_rootVariant.Init(shaderAsset, shaderAsset.GetRootVariant()); + m_rootVariant.Init(shaderAsset, shaderAsset.GetRootVariant(m_supervariantIndex), m_supervariantIndex); if (m_pipelineLibraryHandle.IsNull()) { @@ -176,7 +191,7 @@ namespace AZ { ShaderVariant& shaderVariant = iter->second; - if (!shaderVariant.Init(*m_asset.Get(), shaderVariantAsset)) + if (!shaderVariant.Init(*m_asset.Get(), shaderVariantAsset, m_supervariantIndex)) { AZ_Error("Shader", false, "Failed to init shaderVariant with StableId=%u", shaderVariantAsset->GetStableId()); m_shaderVariants.erase(stableId); @@ -186,7 +201,7 @@ namespace AZ { //This is the first time the shader variant asset comes to life. ShaderVariant newVariant; - newVariant.Init(*m_asset, shaderVariantAsset); + newVariant.Init(*m_asset, shaderVariantAsset, m_supervariantIndex); m_shaderVariants.emplace(stableId, newVariant); } } @@ -245,7 +260,7 @@ namespace AZ const ShaderVariant& Shader::GetVariant(const ShaderVariantId& shaderVariantId) { AZ_PROFILE_FUNCTION(Debug::ProfileCategory::AzRender); - Data::Asset shaderVariantAsset = m_asset->GetVariant(shaderVariantId); + Data::Asset shaderVariantAsset = m_asset->GetVariant(shaderVariantId, m_supervariantIndex); if (!shaderVariantAsset || shaderVariantAsset->IsRootVariant()) { return m_rootVariant; @@ -285,7 +300,7 @@ namespace AZ // reloaded, but some (or all) shader variants haven't been built yet. Since we want to use the latest version of the // shader code, ignore the old variants and fall back to the newer root variant instead. There's no need to report a // warning here because m_asset->GetVariant below will report one. - if (findIt->second.GetShaderAssetBuildTimestamp() == m_asset->GetShaderAssetBuildTimestamp()) + if (findIt->second.GetBuildTimestamp() >= m_asset->GetShaderAssetBuildTimestamp()) { return findIt->second; } @@ -294,7 +309,7 @@ namespace AZ // By calling GetVariant, an asynchronous asset load request is enqueued if the variant // is not fully ready. - Data::Asset shaderVariantAsset = m_asset->GetVariant(shaderVariantStableId); + Data::Asset shaderVariantAsset = m_asset->GetVariant(shaderVariantStableId, m_supervariantIndex); if (!shaderVariantAsset || shaderVariantAsset == m_asset->GetRootVariant()) { // Return the root variant when the requested variant is not ready. @@ -308,7 +323,7 @@ namespace AZ auto findIt = m_shaderVariants.find(shaderVariantStableId); if (findIt != m_shaderVariants.end()) { - if (findIt->second.GetShaderAssetBuildTimestamp() == m_asset->GetShaderAssetBuildTimestamp()) + if (findIt->second.GetBuildTimestamp() >= m_asset->GetShaderAssetBuildTimestamp()) { return findIt->second; } @@ -325,7 +340,7 @@ namespace AZ } ShaderVariant newVariant; - newVariant.Init(*m_asset, shaderVariantAsset); + newVariant.Init(*m_asset, shaderVariantAsset, m_supervariantIndex); m_shaderVariants.emplace(shaderVariantStableId, newVariant); return m_shaderVariants.at(shaderVariantStableId); @@ -336,29 +351,39 @@ namespace AZ return m_pipelineStateType; } + const ShaderInputContract& Shader::GetInputContract() const + { + return m_asset->GetInputContract(m_supervariantIndex); + } + + const ShaderOutputContract& Shader::GetOutputContract() const + { + return m_asset->GetOutputContract(m_supervariantIndex); + } + const RHI::PipelineState* Shader::AcquirePipelineState(const RHI::PipelineStateDescriptor& descriptor) const { return m_pipelineStateCache->AcquirePipelineState(m_pipelineLibraryHandle, descriptor); } - const Data::Asset& Shader::FindShaderResourceGroupAsset(const Name& shaderResourceGroupName) const + const RHI::Ptr& Shader::FindShaderResourceGroupLayout(const Name& shaderResourceGroupName) const { - return m_asset->FindShaderResourceGroupAsset(shaderResourceGroupName); + return m_asset->FindShaderResourceGroupLayout(shaderResourceGroupName, m_supervariantIndex); } - const Data::Asset& Shader::FindShaderResourceGroupAsset(uint32_t bindingSlot) const + const RHI::Ptr& Shader::FindShaderResourceGroupLayout(uint32_t bindingSlot) const { - return m_asset->FindShaderResourceGroupAsset(bindingSlot); + return m_asset->FindShaderResourceGroupLayout(bindingSlot, m_supervariantIndex); } - const Data::Asset& Shader::FindFallbackShaderResourceGroupAsset() const + const RHI::Ptr& Shader::FindFallbackShaderResourceGroupLayout() const { - return m_asset->FindFallbackShaderResourceGroupAsset(); + return m_asset->FindFallbackShaderResourceGroupLayout(m_supervariantIndex); } - AZStd::array_view> Shader::GetShaderResourceGroupAssets() const + AZStd::array_view> Shader::GetShaderResourceGroupLayouts() const { - return m_asset->GetShaderResourceGroupAssets(); + return m_asset->GetShaderResourceGroupLayouts(m_supervariantIndex); } const Data::Asset& Shader::GetAsset() const diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/Shader2.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/Shader2.cpp deleted file mode 100644 index f56a18e2b9..0000000000 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/Shader2.cpp +++ /dev/null @@ -1,413 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#include - -#include - -#include - -#include -#include - -#include - -#include -#include -#include - -namespace AZ -{ - namespace RPI - { - Data::Instance Shader2::FindOrCreate(const Data::Asset& shaderAsset, const Name& supervariantName) - { - Data::Instance shaderInstance = Data::InstanceDatabase::Instance().FindOrCreate( - Data::InstanceId::CreateFromAssetId(shaderAsset.GetId()), - shaderAsset); - if (!shaderInstance) - { - return nullptr; - } - - if (!shaderInstance->SelectSupervariant(supervariantName)) - { - return nullptr; - } - - const RHI::ResultCode resultCode = shaderInstance->Init(*shaderAsset.Get()); - if (resultCode != RHI::ResultCode::Success) - { - return nullptr; - } - return shaderInstance; - } - - Data::Instance Shader2::CreateInternal([[maybe_unused]] ShaderAsset2& shaderAsset) - { - Data::Instance shader = aznew Shader2(); - return shader; - } - - Shader2::~Shader2() - { - Shutdown(); - } - - bool Shader2::SelectSupervariant(const Name& supervariantName) - { - if (supervariantName.IsEmpty()) - { - m_supervariantIndex = DefaultSupervariantIndex; - return true; - } - - auto supervariantIndex = m_asset->GetSupervariantIndex(supervariantName); - if (supervariantIndex == InvalidSupervariantIndex) - { - return false; - } - - m_supervariantIndex = supervariantIndex; - return true; - } - - RHI::ResultCode Shader2::Init(ShaderAsset2& shaderAsset) - { - AZ_Assert(m_supervariantIndex != InvalidSupervariantIndex, "Invalid supervariant index"); - - ShaderVariantFinderNotificationBus2::Handler::BusDisconnect(); - ShaderVariantFinderNotificationBus2::Handler::BusConnect(shaderAsset.GetId()); - - RHI::RHISystemInterface* rhiSystem = RHI::RHISystemInterface::Get(); - RHI::DrawListTagRegistry* drawListTagRegistry = rhiSystem->GetDrawListTagRegistry(); - - m_asset = { &shaderAsset, AZ::Data::AssetLoadBehavior::PreLoad }; - m_pipelineStateType = shaderAsset.GetPipelineStateType(); - - { - AZStd::unique_lock lock(m_variantCacheMutex); - m_shaderVariants.clear(); - } - m_rootVariant.Init(shaderAsset, shaderAsset.GetRootVariant(m_supervariantIndex), m_supervariantIndex); - - if (m_pipelineLibraryHandle.IsNull()) - { - // We set up a pipeline library only once for the lifetime of the Shader2 instance. - // This should allow the Shader2 to be reloaded at runtime many times, and cache and reuse PipelineState objects rather than rebuild them. - // It also fixes a particular TDR crash that occurred on some hardware when hot-reloading shaders and building pipeline states - // in a new pipeline library every time. - - RHI::PipelineStateCache* pipelineStateCache = rhiSystem->GetPipelineStateCache(); - ConstPtr serializedData = LoadPipelineLibrary(); - RHI::PipelineLibraryHandle pipelineLibraryHandle = pipelineStateCache->CreateLibrary(serializedData.get()); - - if (pipelineLibraryHandle.IsNull()) - { - AZ_Error("Shader2", false, "Failed to create pipeline library from pipeline state cache."); - return RHI::ResultCode::Fail; - } - - m_pipelineLibraryHandle = pipelineLibraryHandle; - m_pipelineStateCache = pipelineStateCache; - } - - const Name& drawListName = shaderAsset.GetDrawListName(); - if (!drawListName.IsEmpty()) - { - m_drawListTag = drawListTagRegistry->AcquireTag(drawListName); - if (!m_drawListTag.IsValid()) - { - AZ_Error("Shader2", false, "Failed to acquire a DrawListTag. Entries are full."); - } - } - - Data::AssetBus::Handler::BusConnect(m_asset.GetId()); - - return RHI::ResultCode::Success; - } - - void Shader2::Shutdown() - { - ShaderVariantFinderNotificationBus2::Handler::BusDisconnect(); - Data::AssetBus::Handler::BusDisconnect(); - - if (m_pipelineLibraryHandle.IsValid()) - { - SavePipelineLibrary(); - - m_pipelineStateCache->ReleaseLibrary(m_pipelineLibraryHandle); - m_pipelineStateCache = nullptr; - m_pipelineLibraryHandle = {}; - } - - if (m_drawListTag.IsValid()) - { - RHI::DrawListTagRegistry* drawListTagRegistry = RHI::RHISystemInterface::Get()->GetDrawListTagRegistry(); - drawListTagRegistry->ReleaseTag(m_drawListTag); - m_drawListTag.Reset(); - } - } - - /////////////////////////////////////////////////////////////////////// - // AssetBus overrides - void Shader2::OnAssetReloaded(Data::Asset asset) - { - ShaderReloadDebugTracker::ScopedSection reloadSection("Shader2::OnAssetReloaded %s", asset.GetHint().c_str()); - - if (asset->GetId() == m_asset->GetId()) - { - Data::Asset newAsset = { asset.GetAs(), AZ::Data::AssetLoadBehavior::PreLoad }; - AZ_Assert(newAsset, "Reloaded ShaderAsset2 is null"); - - Data::AssetBus::Handler::BusDisconnect(); - Init(*newAsset.Get()); - ShaderReloadNotificationBus2::Event(asset.GetId(), &ShaderReloadNotificationBus2::Events::OnShaderReinitialized, *this); - } - } - /////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////// - /// ShaderVariantFinderNotificationBus2 overrides - void Shader2::OnShaderVariantAssetReady(Data::Asset shaderVariantAsset, bool isError) - { - AZ_Assert(shaderVariantAsset, "Reloaded ShaderVariantAsset is null"); - const ShaderVariantStableId stableId = shaderVariantAsset->GetStableId(); - const ShaderVariantId& shaderVariantId = shaderVariantAsset->GetShaderVariantId(); - - if (isError) - { - //Remark: We do not assert if the stableId == RootShaderVariantStableId, because we can not trust in the asset data - //on error. so it is possible that on error the stbleId == RootShaderVariantStableId; - if (stableId == RootShaderVariantStableId) - { - return; - } - AZStd::unique_lock lock(m_variantCacheMutex); - m_shaderVariants.erase(stableId); - } - else - { - AZ_Assert(stableId != RootShaderVariantStableId, - "The root variant is expected to be updated by the ShaderAsset2."); - AZStd::unique_lock lock(m_variantCacheMutex); - - auto iter = m_shaderVariants.find(stableId); - if (iter != m_shaderVariants.end()) - { - ShaderVariant2& shaderVariant = iter->second; - - if (!shaderVariant.Init(*m_asset.Get(), shaderVariantAsset, m_supervariantIndex)) - { - AZ_Error("Shader2", false, "Failed to init shaderVariant with StableId=%u", shaderVariantAsset->GetStableId()); - m_shaderVariants.erase(stableId); - } - } - else - { - //This is the first time the shader variant asset comes to life. - ShaderVariant2 newVariant; - newVariant.Init(*m_asset, shaderVariantAsset, m_supervariantIndex); - m_shaderVariants.emplace(stableId, newVariant); - } - } - - //Even if there was an error, the interested parties should be notified. - ShaderReloadNotificationBus2::Event(m_asset.GetId(), &ShaderReloadNotificationBus2::Events::OnShaderVariantReinitialized, *this, shaderVariantId, stableId); - } - /////////////////////////////////////////////////////////////////// - - ConstPtr Shader2::LoadPipelineLibrary() const - { - if (IO::FileIOBase::GetInstance()) - { - return Utils::LoadObjectFromFile(GetPipelineLibraryPath()); - } - return nullptr; - } - - void Shader2::SavePipelineLibrary() const - { - if (auto* fileIOBase = IO::FileIOBase::GetInstance()) - { - RHI::ConstPtr serializedData = m_pipelineStateCache->GetLibrarySerializedData(m_pipelineLibraryHandle); - if (serializedData) - { - const AZStd::string pipelineLibraryPath = GetPipelineLibraryPath(); - - char pipelineLibraryPathResolved[AZ_MAX_PATH_LEN] = { 0 }; - fileIOBase->ResolvePath(pipelineLibraryPath.c_str(), pipelineLibraryPathResolved, AZ_MAX_PATH_LEN); - Utils::SaveObjectToFile(pipelineLibraryPathResolved, DataStream::ST_BINARY, serializedData.get()); - } - } - else - { - AZ_Error("Shader2", false, "FileIOBase is not initialized"); - } - } - - AZStd::string Shader2::GetPipelineLibraryPath() const - { - const Data::InstanceId& instanceId = GetId(); - Name platformName = RHI::Factory::Get().GetName(); - Name shaderName = m_asset->GetName(); - - AZStd::string uuidString; - instanceId.m_guid.ToString(uuidString, false, false); - - return AZStd::string::format("@user@/Atom/PipelineStateCache/%s/%s_%s_%d.bin", platformName.GetCStr(), shaderName.GetCStr(), uuidString.data(), instanceId.m_subId); - } - - ShaderOptionGroup Shader2::CreateShaderOptionGroup() const - { - return ShaderOptionGroup(m_asset->GetShaderOptionGroupLayout()); - } - - const ShaderVariant2& Shader2::GetVariant(const ShaderVariantId& shaderVariantId) - { - AZ_PROFILE_FUNCTION(Debug::ProfileCategory::AzRender); - Data::Asset shaderVariantAsset = m_asset->GetVariant(shaderVariantId, m_supervariantIndex); - if (!shaderVariantAsset || shaderVariantAsset->IsRootVariant()) - { - return m_rootVariant; - } - - return GetVariant(shaderVariantAsset->GetStableId()); - } - - const ShaderVariant2& Shader2::GetRootVariant() - { - return m_rootVariant; - } - - ShaderVariantSearchResult Shader2::FindVariantStableId(const ShaderVariantId& shaderVariantId) const - { - AZ_PROFILE_FUNCTION(Debug::ProfileCategory::AzRender); - ShaderVariantSearchResult variantSearchResult = m_asset->FindVariantStableId(shaderVariantId); - return variantSearchResult; - } - - const ShaderVariant2& Shader2::GetVariant(ShaderVariantStableId shaderVariantStableId) - { - AZ_PROFILE_FUNCTION(Debug::ProfileCategory::AzRender); - - if (!shaderVariantStableId.IsValid() || shaderVariantStableId == ShaderAsset2::RootShaderVariantStableId) - { - return m_rootVariant; - } - - { - AZStd::shared_lock lock(m_variantCacheMutex); - - auto findIt = m_shaderVariants.find(shaderVariantStableId); - if (findIt != m_shaderVariants.end()) - { - // When rebuilding shaders we may be in a state where the ShaderAsset2 and root ShaderVariantAsset have been rebuilt and - // reloaded, but some (or all) shader variants haven't been built yet. Since we want to use the latest version of the - // shader code, ignore the old variants and fall back to the newer root variant instead. There's no need to report a - // warning here because m_asset->GetVariant below will report one. - if (findIt->second.GetBuildTimestamp() >= m_asset->GetShaderAssetBuildTimestamp()) - { - return findIt->second; - } - } - } - - // By calling GetVariant, an asynchronous asset load request is enqueued if the variant - // is not fully ready. - Data::Asset shaderVariantAsset = m_asset->GetVariant(shaderVariantStableId, m_supervariantIndex); - if (!shaderVariantAsset || shaderVariantAsset == m_asset->GetRootVariant()) - { - // Return the root variant when the requested variant is not ready. - return m_rootVariant; - } - - AZStd::unique_lock lock(m_variantCacheMutex); - - // For performance reasons We are breaking this function into two locking steps. - // which means We must check again if the variant is already in the cache. - auto findIt = m_shaderVariants.find(shaderVariantStableId); - if (findIt != m_shaderVariants.end()) - { - if (findIt->second.GetBuildTimestamp() >= m_asset->GetShaderAssetBuildTimestamp()) - { - return findIt->second; - } - else - { - // This is probably very rare, but if the variant was loaded on another thread and it's out of date - // we just return the root variant. Otherwise we could end up replacing the variant in the map below while - // it's being used for rendering. - AZ_Warning( - "Shader2", false, - "Detected an uncommon state during shader reload. Returning the root variant instead of replacing the old one."); - return m_rootVariant; - } - } - - ShaderVariant2 newVariant; - newVariant.Init(*m_asset, shaderVariantAsset, m_supervariantIndex); - m_shaderVariants.emplace(shaderVariantStableId, newVariant); - - return m_shaderVariants.at(shaderVariantStableId); - } - - RHI::PipelineStateType Shader2::GetPipelineStateType() const - { - return m_pipelineStateType; - } - - const ShaderInputContract& Shader2::GetInputContract() const - { - return m_asset->GetInputContract(m_supervariantIndex); - } - - const ShaderOutputContract& Shader2::GetOutputContract() const - { - return m_asset->GetOutputContract(m_supervariantIndex); - } - - const RHI::PipelineState* Shader2::AcquirePipelineState(const RHI::PipelineStateDescriptor& descriptor) const - { - return m_pipelineStateCache->AcquirePipelineState(m_pipelineLibraryHandle, descriptor); - } - - const RHI::Ptr Shader2::FindShaderResourceGroupLayout(const Name& shaderResourceGroupName) const - { - return m_asset->FindShaderResourceGroupLayout(shaderResourceGroupName, m_supervariantIndex); - } - - const RHI::Ptr Shader2::FindShaderResourceGroupLayout(uint32_t bindingSlot) const - { - return m_asset->FindShaderResourceGroupLayout(bindingSlot, m_supervariantIndex); - } - - const RHI::Ptr Shader2::FindFallbackShaderResourceGroupLayout() const - { - return m_asset->FindFallbackShaderResourceGroupLayout(m_supervariantIndex); - } - - AZStd::array_view> Shader2::GetShaderResourceGroupLayouts() const - { - return m_asset->GetShaderResourceGroupLayouts(m_supervariantIndex); - } - - const Data::Asset& Shader2::GetAsset() const - { - return m_asset; - } - - RHI::DrawListTag Shader2::GetDrawListTag() const - { - return m_drawListTag; - } - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderResourceGroup.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderResourceGroup.cpp index 86cb3cd0a4..f63165495f 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderResourceGroup.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderResourceGroup.cpp @@ -25,38 +25,51 @@ namespace AZ const Data::Instance ShaderResourceGroup::s_nullImage; const Data::Instance ShaderResourceGroup::s_nullBuffer; - Data::Instance ShaderResourceGroup::FindOrCreate(const Data::Asset& srgAsset) + Data::InstanceId ShaderResourceGroup::MakeInstanceId( + const Data::Asset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName) { - return Data::InstanceDatabase::Instance().FindOrCreate( - Data::InstanceId::CreateFromAssetId(srgAsset.GetId()), - srgAsset); + AZ_Assert(!srgName.IsEmpty(), "Invalid ShaderResourceGroup name"); + + // Let's find the srg layout with the given name, because it contains the azsl file path of origin + // which is essential to uniquely identify an SRG and avoid redundant copies in memory. + auto srgLayout = shaderAsset->FindShaderResourceGroupLayout(srgName, supervariantIndex); + AZ_Assert(srgLayout != nullptr, "Failed to find SRG with name %s, using supervariantIndex %u from shaderAsset %s", srgName.GetCStr(), + supervariantIndex.GetIndex(), shaderAsset.GetHint().c_str()); + + AZStd::string idString = AZStd::string::format("%s_%u_%s", srgLayout->GetUniqueId().c_str(), supervariantIndex.GetIndex(), srgName.GetCStr()); + return Data::InstanceId::CreateData(idString.data(), idString.size()); } - Data::Instance ShaderResourceGroup::Create(const Data::Asset& srgAsset) + Data::Instance ShaderResourceGroup::Create( + const Data::Asset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName) { + SrgInitParams initParams{ supervariantIndex, srgName }; + auto anyInitParams = AZStd::any(initParams); return Data::InstanceDatabase::Instance().FindOrCreate( - Data::InstanceId::CreateRandom(), - srgAsset); + Data::InstanceId::CreateRandom(), shaderAsset, &anyInitParams); } - Data::Instance ShaderResourceGroup::CreateInternal(ShaderResourceGroupAsset& srgAsset) + Data::Instance ShaderResourceGroup::CreateInternal(ShaderAsset& shaderAsset, const AZStd::any* anySrgInitParams) { + AZ_Assert(anySrgInitParams, "Invalid SrgInitParams"); + auto srgInitParams = AZStd::any_cast(*anySrgInitParams); + Data::Instance srg = aznew ShaderResourceGroup(); - const RHI::ResultCode resultCode = srg->Init(srgAsset); - - if (resultCode == RHI::ResultCode::Success) + const RHI::ResultCode resultCode = srg->Init(shaderAsset, srgInitParams.m_supervariantIndex, srgInitParams.m_srgName); + if (resultCode != RHI::ResultCode::Success) { - return srg; + return nullptr; } - return nullptr; + return srg; } - RHI::ResultCode ShaderResourceGroup::Init(ShaderResourceGroupAsset& shaderResourceGroupAsset) + RHI::ResultCode ShaderResourceGroup::Init(ShaderAsset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName) { AZ_TRACE_METHOD(); - m_layout = shaderResourceGroupAsset.GetLayout(); + const auto& lay = shaderAsset.FindShaderResourceGroupLayout(srgName, supervariantIndex); + m_layout = lay.get(); if (!m_layout) { @@ -64,9 +77,8 @@ namespace AZ return RHI::ResultCode::Fail; } - m_pool = ShaderResourceGroupPool::FindOrCreate(AZ::Data::Asset( - &shaderResourceGroupAsset, - AZ::Data::AssetLoadBehavior::PreLoad)); + m_pool = ShaderResourceGroupPool::FindOrCreate( + AZ::Data::Asset(&shaderAsset, AZ::Data::AssetLoadBehavior::PreLoad), supervariantIndex, srgName); if (!m_pool) { return RHI::ResultCode::Fail; @@ -77,52 +89,19 @@ namespace AZ { return RHI::ResultCode::Fail; } - m_shaderResourceGroup->SetName(shaderResourceGroupAsset.GetName()); + m_shaderResourceGroup->SetName(srgName); m_data = RHI::ShaderResourceGroupData(m_layout); - m_asset = { &shaderResourceGroupAsset, AZ::Data::AssetLoadBehavior::PreLoad }; + m_asset = { &shaderAsset, AZ::Data::AssetLoadBehavior::PreLoad }; // The RPI groups match the same dimensions as the RHI group. m_imageGroup.resize(m_layout->GetGroupSizeForImages()); m_bufferGroup.resize(m_layout->GetGroupSizeForBuffers()); + m_isInitialized = true; + return RHI::ResultCode::Success; } - bool ShaderResourceGroup::ReplaceSrgLayoutUsingShaderAsset( - Data::Asset shaderAsset, const Name& supervariantName, const Name& srgName) - { - AZ_TRACE_METHOD(); - - SupervariantIndex supervariantIndex = shaderAsset->GetSupervariantIndex(supervariantName); - if (supervariantIndex == InvalidSupervariantIndex) - { - AZ_Assert( - false, "Supervariant with name [%s] not found in shader asset [%s]", supervariantName.GetCStr(), - shaderAsset->GetName().GetCStr()); - return false; - } - - m_layout = shaderAsset->FindShaderResourceGroupLayout(srgName, supervariantIndex).get(); - - if (!m_layout) - { - AZ_Assert(false, "ShaderResourceGroup cannot be initialized due to invalid ShaderResourceGroupLayout"); - return false; - } - - m_shaderResourceGroup->SetName(m_layout->GetName()); - m_data = RHI::ShaderResourceGroupData(m_layout); - m_shaderAsset = shaderAsset; - - // The RPI groups match the same dimensions as the RHI group. - m_imageGroup.clear(); - m_imageGroup.resize(m_layout->GetGroupSizeForImages()); - m_bufferGroup.clear(); - m_bufferGroup.resize(m_layout->GetGroupSizeForBuffers()); - - return true; - } - void ShaderResourceGroup::Compile() { m_shaderResourceGroup->Compile(m_data); @@ -163,10 +142,10 @@ namespace AZ return m_layout->FindShaderInputImageUnboundedArrayIndex(name); } - const Data::Asset& ShaderResourceGroup::GetAsset() const - { - return m_asset; - } + //const Data::Asset& ShaderResourceGroup::GetAsset() const + //{ + // return m_asset; + //} const RHI::ShaderResourceGroupLayout* ShaderResourceGroup::GetLayout() const { diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderResourceGroupPool.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderResourceGroupPool.cpp index 60925acb55..19101961a0 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderResourceGroupPool.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderResourceGroupPool.cpp @@ -16,32 +16,40 @@ #include #include +#include namespace AZ { namespace RPI { - Data::Instance ShaderResourceGroupPool::FindOrCreate(const Data::Asset& srgAsset) + Data::Instance ShaderResourceGroupPool::FindOrCreate( + const Data::Asset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName) { - return Data::InstanceDatabase::Instance().FindOrCreate( - Data::InstanceId::CreateFromAssetId(srgAsset.GetId()), - srgAsset); + auto instanceId = ShaderResourceGroup::MakeInstanceId(shaderAsset, supervariantIndex, srgName); + ShaderResourceGroup::SrgInitParams srgInitParams{ supervariantIndex, srgName }; + auto anyArgInitParams = AZStd::any(srgInitParams); + return Data::InstanceDatabase::Instance().FindOrCreate(instanceId, + shaderAsset, &anyArgInitParams); } - Data::Instance ShaderResourceGroupPool::CreateInternal(ShaderResourceGroupAsset& srgAsset) + Data::Instance ShaderResourceGroupPool::CreateInternal( + [[maybe_unused]] ShaderAsset& shaderAsset, const AZStd::any* anySrgInitParams) { - Data::Instance srgPool = aznew ShaderResourceGroupPool(); - const RHI::ResultCode resultCode = srgPool->Init(srgAsset); + AZ_Assert(anySrgInitParams, "Invalid SrgInitParams"); + auto srgInitParams = AZStd::any_cast(*anySrgInitParams); - if (resultCode == RHI::ResultCode::Success) + Data::Instance srgPool = aznew ShaderResourceGroupPool(); + const RHI::ResultCode resultCode = srgPool->Init(shaderAsset, srgInitParams.m_supervariantIndex, srgInitParams.m_srgName); + if (resultCode != RHI::ResultCode::Success) { - return srgPool; + return nullptr; } - return nullptr; + return srgPool; } - RHI::ResultCode ShaderResourceGroupPool::Init(ShaderResourceGroupAsset& srgAsset) + RHI::ResultCode ShaderResourceGroupPool::Init( + ShaderAsset& shaderAsset, const SupervariantIndex& supervariantIndex, const AZ::Name& srgName) { RHI::Ptr device = RHI::RHISystemInterface::Get()->GetDevice(); @@ -53,14 +61,11 @@ namespace AZ } RHI::ShaderResourceGroupPoolDescriptor poolDescriptor; - poolDescriptor.m_layout = srgAsset.GetLayout(); + poolDescriptor.m_layout = shaderAsset.FindShaderResourceGroupLayout(srgName, supervariantIndex).get(); - m_pool->SetName(Name(srgAsset.GetName())); + m_pool->SetName(srgName); const RHI::ResultCode resultCode = m_pool->Init(*device, poolDescriptor); - - AZ_Error("ShaderResourceGroupPool", resultCode == RHI::ResultCode::Success, "Failed to initialize RHI::ShaderResourceGroupPool"); - return resultCode; } diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderSystem.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderSystem.cpp index b5125ba964..d94760d243 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderSystem.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderSystem.cpp @@ -12,18 +12,14 @@ #include #include -#include #include #include #include #include #include -#include #include -#include #include -#include #include #include @@ -37,7 +33,6 @@ namespace AZ void ShaderSystem::Reflect(ReflectContext* context) { - ShaderResourceGroupAsset::Reflect(context); ShaderOptionDescriptor::Reflect(context); ShaderOptionGroupLayout::Reflect(context); ShaderOptionGroupHints::Reflect(context); @@ -45,11 +40,9 @@ namespace AZ ShaderVariantId::Reflect(context); ShaderVariantStableId::Reflect(context); ShaderAsset::Reflect(context); - ShaderAsset2::Reflect(context); ShaderInputContract::Reflect(context); ShaderOutputContract::Reflect(context); ShaderVariantAsset::Reflect(context); - ShaderVariantAsset2::Reflect(context); ShaderVariantTreeAsset::Reflect(context); ReflectShaderStageType(context); PrecompiledShaderAssetSourceData::Reflect(context); @@ -63,10 +56,7 @@ namespace AZ void ShaderSystem::GetAssetHandlers(AssetHandlerPtrList& assetHandlers) { assetHandlers.emplace_back(MakeAssetHandler()); - assetHandlers.emplace_back(MakeAssetHandler()); - assetHandlers.emplace_back(MakeAssetHandler()); assetHandlers.emplace_back(MakeAssetHandler()); - assetHandlers.emplace_back(MakeAssetHandler()); assetHandlers.emplace_back(MakeAssetHandler()); } @@ -78,44 +68,35 @@ namespace AZ { Data::InstanceHandler handler; - handler.m_createFunction = [](Data::AssetData* shaderAsset) + handler.m_createFunctionWithParam = [](Data::AssetData* shaderAsset, const AZStd::any* supervariantName) { - return Shader::CreateInternal(*(azrtti_cast(shaderAsset))); + return Shader::CreateInternal(*(azrtti_cast(shaderAsset)), supervariantName); }; Data::InstanceDatabase::Create(azrtti_typeid(), handler); } - { - Data::InstanceHandler handler; - handler.m_createFunction = [](Data::AssetData* shaderAsset) { - return Shader2::CreateInternal(*(azrtti_cast(shaderAsset))); - }; - Data::InstanceDatabase::Create(azrtti_typeid(), handler); - } - { Data::InstanceHandler handler; - handler.m_createFunction = [](Data::AssetData* srgAsset) + handler.m_createFunctionWithParam = [](Data::AssetData* shaderAsset, const AZStd::any* srgInitBlob) { - return ShaderResourceGroup::CreateInternal(*(azrtti_cast(srgAsset))); + return ShaderResourceGroup::CreateInternal(*(azrtti_cast(shaderAsset)), srgInitBlob); }; - Data::InstanceDatabase::Create(azrtti_typeid(), handler); + Data::InstanceDatabase::Create(azrtti_typeid(), handler, false); } { Data::InstanceHandler handler; - handler.m_createFunction = [](Data::AssetData* srgAsset) + handler.m_createFunctionWithParam = [](Data::AssetData* shaderAsset, const AZStd::any* srgInitBlob) { - return ShaderResourceGroupPool::CreateInternal(*(azrtti_cast(srgAsset))); + return ShaderResourceGroupPool::CreateInternal(*(azrtti_cast(shaderAsset)), srgInitBlob); }; - Data::InstanceDatabase::Create(azrtti_typeid(), handler); + Data::InstanceDatabase::Create(azrtti_typeid(), handler, false); } } void ShaderSystem::Shutdown() { Data::InstanceDatabase::Destroy(); - Data::InstanceDatabase::Destroy(); Data::InstanceDatabase::Destroy(); Data::InstanceDatabase::Destroy(); Interface::Unregister(this); diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariant.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariant.cpp index 4d50f10c9c..09b1359e08 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariant.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariant.cpp @@ -22,11 +22,13 @@ namespace AZ { bool ShaderVariant::Init( const ShaderAsset& shaderAsset, - Data::Asset shaderVariantAsset) + Data::Asset shaderVariantAsset, + SupervariantIndex supervariantIndex) { m_pipelineStateType = shaderAsset.GetPipelineStateType(); - m_pipelineLayoutDescriptor = shaderAsset.GetPipelineLayoutDescriptor(); + m_pipelineLayoutDescriptor = shaderAsset.GetPipelineLayoutDescriptor(supervariantIndex); m_shaderVariantAsset = shaderVariantAsset; + m_renderStates = &shaderAsset.GetRenderStates(supervariantIndex); return true; } @@ -39,11 +41,12 @@ namespace AZ case RHI::PipelineStateType::Draw: { AZ_Assert(m_pipelineStateType == RHI::PipelineStateType::Draw, "ShaderVariant is not intended for the raster pipeline."); + AZ_Assert(m_renderStates, "Invalid RenderStates"); RHI::PipelineStateDescriptorForDraw& descriptorForDraw = static_cast(descriptor); descriptorForDraw.m_vertexFunction = m_shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Vertex); descriptorForDraw.m_tessellationFunction = m_shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Tessellation); descriptorForDraw.m_fragmentFunction = m_shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Fragment); - descriptorForDraw.m_renderStates = m_shaderVariantAsset->GetRenderStates(); + descriptorForDraw.m_renderStates = *m_renderStates; break; } @@ -69,14 +72,5 @@ namespace AZ } } - const ShaderInputContract& ShaderVariant::GetInputContract() const - { - return m_shaderVariantAsset->GetInputContract(); - } - - const ShaderOutputContract& ShaderVariant::GetOutputContract() const - { - return m_shaderVariantAsset->GetOutputContract(); - } } // namespace RPI } // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariant2.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariant2.cpp deleted file mode 100644 index d25b87fab3..0000000000 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariant2.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#include - -#include -#include - -#include - -namespace AZ -{ - namespace RPI - { - bool ShaderVariant2::Init( - const ShaderAsset2& shaderAsset, - Data::Asset shaderVariantAsset, - SupervariantIndex supervariantIndex) - { - m_pipelineStateType = shaderAsset.GetPipelineStateType(); - m_pipelineLayoutDescriptor = shaderAsset.GetPipelineLayoutDescriptor(supervariantIndex); - m_shaderVariantAsset = shaderVariantAsset; - m_renderStates = &shaderAsset.GetRenderStates(supervariantIndex); - return true; - } - - void ShaderVariant2::ConfigurePipelineState(RHI::PipelineStateDescriptor& descriptor) const - { - descriptor.m_pipelineLayoutDescriptor = m_pipelineLayoutDescriptor; - - switch (descriptor.GetType()) - { - case RHI::PipelineStateType::Draw: - { - AZ_Assert(m_pipelineStateType == RHI::PipelineStateType::Draw, "ShaderVariant2 is not intended for the raster pipeline."); - AZ_Assert(m_renderStates, "Invalid RenderStates"); - RHI::PipelineStateDescriptorForDraw& descriptorForDraw = static_cast(descriptor); - descriptorForDraw.m_vertexFunction = m_shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Vertex); - descriptorForDraw.m_tessellationFunction = m_shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Tessellation); - descriptorForDraw.m_fragmentFunction = m_shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Fragment); - descriptorForDraw.m_renderStates = *m_renderStates; - break; - } - - case RHI::PipelineStateType::Dispatch: - { - AZ_Assert(m_pipelineStateType == RHI::PipelineStateType::Dispatch, "ShaderVariant2 is not intended for the compute pipeline."); - RHI::PipelineStateDescriptorForDispatch& descriptorForDispatch = static_cast(descriptor); - descriptorForDispatch.m_computeFunction = m_shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Compute); - break; - } - - case RHI::PipelineStateType::RayTracing: - { - AZ_Assert(m_pipelineStateType == RHI::PipelineStateType::RayTracing, "ShaderVariant2 is not intended for the ray tracing pipeline."); - RHI::PipelineStateDescriptorForRayTracing& descriptorForRayTracing = static_cast(descriptor); - descriptorForRayTracing.m_rayTracingFunction = m_shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::RayTracing); - break; - } - - default: - AZ_Assert(false, "Unexpected PipelineStateType"); - break; - } - } - - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariantAsyncLoader.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariantAsyncLoader.cpp index 3fc2bbd197..bc371a6e42 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariantAsyncLoader.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Shader/ShaderVariantAsyncLoader.cpp @@ -38,7 +38,7 @@ namespace AZ void ShaderVariantAsyncLoader::ThreadServiceLoop() { - AZStd::unordered_set newShaderVariantPendingRequests; + AZStd::unordered_set newShaderVariantPendingRequests; AZStd::unordered_set shaderVariantTreePendingRequests; AZStd::unordered_set shaderVariantPendingRequests; while (true) @@ -70,8 +70,8 @@ namespace AZ AZStd::for_each( m_newShaderVariantPendingRequests.begin(), m_newShaderVariantPendingRequests.end(), - [&](const ShaderVariantAsyncLoader::PairOfShaderAssetAndShaderVariantId& pair) { - newShaderVariantPendingRequests.insert(pair); + [&](const ShaderVariantAsyncLoader::TupleShaderAssetAndShaderVariantId& tuple) { + newShaderVariantPendingRequests.insert(tuple); }); m_newShaderVariantPendingRequests.clear(); @@ -91,36 +91,36 @@ namespace AZ } // Time to work hard. - auto pairItor = newShaderVariantPendingRequests.begin(); - while (pairItor != newShaderVariantPendingRequests.end()) + auto tupleItor = newShaderVariantPendingRequests.begin(); + while (tupleItor != newShaderVariantPendingRequests.end()) { - auto shaderVariantTreeAsset = GetShaderVariantTreeAsset(pairItor->m_shaderAsset.GetId()); + auto shaderVariantTreeAsset = GetShaderVariantTreeAsset(tupleItor->m_shaderAsset.GetId()); if (shaderVariantTreeAsset) { AZ_Assert(shaderVariantTreeAsset.IsReady(), "shaderVariantTreeAsset is not ready!"); // Get the stableId from the variant tree. auto searchResult = shaderVariantTreeAsset->FindVariantStableId( - pairItor->m_shaderAsset->GetShaderOptionGroupLayout(), pairItor->m_shaderVariantId); + tupleItor->m_shaderAsset->GetShaderOptionGroupLayout(), tupleItor->m_shaderVariantId); if (searchResult.IsRoot()) { - pairItor = newShaderVariantPendingRequests.erase(pairItor); + tupleItor = newShaderVariantPendingRequests.erase(tupleItor); continue; } // Record the request for metrics. - ShaderMetricsSystem::Get()->RequestShaderVariant(pairItor->m_shaderAsset.Get(), pairItor->m_shaderVariantId, searchResult); + ShaderMetricsSystem::Get()->RequestShaderVariant(tupleItor->m_shaderAsset.Get(), tupleItor->m_shaderVariantId, searchResult); - uint32_t shaderVariantProductSubId = - ShaderVariantAsset::MakeAssetProductSubId(RHI::Factory::Get().GetAPIUniqueIndex(), searchResult.GetStableId()); + uint32_t shaderVariantProductSubId = ShaderVariantAsset::MakeAssetProductSubId( + RHI::Factory::Get().GetAPIUniqueIndex(), tupleItor->m_supervariantIndex.GetIndex(), searchResult.GetStableId()); Data::AssetId shaderVariantAssetId(shaderVariantTreeAsset.GetId().m_guid, shaderVariantProductSubId); shaderVariantPendingRequests.insert(shaderVariantAssetId); - pairItor = newShaderVariantPendingRequests.erase(pairItor); + tupleItor = newShaderVariantPendingRequests.erase(tupleItor); continue; } // If we are here the shaderVariantTreeAsset is not ready, but maybe it is already queued for loading, // but we try to queue it anyways. - QueueShaderVariantTreeForLoading(*pairItor, shaderVariantTreePendingRequests); - pairItor++; + QueueShaderVariantTreeForLoading(*tupleItor, shaderVariantTreePendingRequests); + tupleItor++; } @@ -181,7 +181,7 @@ namespace AZ /////////////////////////////////////////////////////////////////// // IShaderVariantFinder overrides bool ShaderVariantAsyncLoader::QueueLoadShaderVariantAssetByVariantId( - Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId) + Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) { if (m_isServiceShutdown.load()) { @@ -190,15 +190,15 @@ namespace AZ { AZStd::unique_lock lock(m_mutex); - PairOfShaderAssetAndShaderVariantId pair = {shaderAsset, shaderVariantId}; - m_newShaderVariantPendingRequests.push_back(pair); + TupleShaderAssetAndShaderVariantId tuple = {shaderAsset, shaderVariantId, supervariantIndex}; + m_newShaderVariantPendingRequests.push_back(tuple); } m_workCondition.notify_one(); return true; } bool ShaderVariantAsyncLoader::QueueLoadShaderVariantAsset( - const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId) + const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId, SupervariantIndex supervariantIndex) { if (m_isServiceShutdown.load()) { @@ -208,7 +208,7 @@ namespace AZ AZ_Assert(variantStableId != RootShaderVariantStableId, "Root Variants Are Found inside ShaderAssets"); uint32_t shaderVariantProductSubId = - ShaderVariantAsset::MakeAssetProductSubId(RHI::Factory::Get().GetAPIUniqueIndex(), variantStableId); + ShaderVariantAsset::MakeAssetProductSubId(RHI::Factory::Get().GetAPIUniqueIndex(), supervariantIndex.GetIndex(), variantStableId); Data::AssetId shaderVariantAssetId(shaderVariantTreeAssetId.m_guid, shaderVariantProductSubId); { AZStd::unique_lock lock(m_mutex); @@ -234,7 +234,7 @@ namespace AZ } Data::Asset ShaderVariantAsyncLoader::GetShaderVariantAssetByVariantId( - Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId) + Data::Asset shaderAsset, const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) { Data::Asset shaderVariantTreeAsset = GetShaderVariantTreeAsset(shaderAsset.GetId()); if (!shaderVariantTreeAsset) @@ -253,11 +253,11 @@ namespace AZ // Record the request for metrics. ShaderMetricsSystem::Get()->RequestShaderVariant(shaderAsset.Get(), shaderVariantId, searchResult); - return GetShaderVariantAsset(shaderVariantTreeAsset.GetId(), searchResult.GetStableId()); + return GetShaderVariantAsset(shaderVariantTreeAsset.GetId(), searchResult.GetStableId(), supervariantIndex); } Data::Asset ShaderVariantAsyncLoader::GetShaderVariantAssetByStableId( - Data::Asset shaderAsset, ShaderVariantStableId shaderVariantStableId) + Data::Asset shaderAsset, ShaderVariantStableId shaderVariantStableId, SupervariantIndex supervariantIndex) { AZ_Assert(shaderVariantStableId != RootShaderVariantStableId, "Root Variants Are Found inside ShaderAssets"); @@ -267,7 +267,7 @@ namespace AZ return {}; } - return GetShaderVariantAsset(shaderVariantTreeAsset.GetId(), shaderVariantStableId); + return GetShaderVariantAsset(shaderVariantTreeAsset.GetId(), shaderVariantStableId, supervariantIndex); } Data::Asset ShaderVariantAsyncLoader::GetShaderVariantTreeAsset(const Data::AssetId& shaderAssetId) @@ -292,11 +292,13 @@ namespace AZ return {}; } - Data::Asset ShaderVariantAsyncLoader::GetShaderVariantAsset(const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId) + Data::Asset ShaderVariantAsyncLoader::GetShaderVariantAsset( + const Data::AssetId& shaderVariantTreeAssetId, ShaderVariantStableId variantStableId, SupervariantIndex supervariantIndex) { AZ_Assert(variantStableId != RootShaderVariantStableId, "Root Variants Are Found inside ShaderAssets"); - uint32_t shaderVariantProductSubId = ShaderVariantAsset::MakeAssetProductSubId(RHI::Factory::Get().GetAPIUniqueIndex(), variantStableId); + uint32_t shaderVariantProductSubId = + ShaderVariantAsset::MakeAssetProductSubId(RHI::Factory::Get().GetAPIUniqueIndex(), supervariantIndex.GetIndex(), variantStableId); Data::AssetId shaderVariantAssetId(shaderVariantTreeAssetId.m_guid, shaderVariantProductSubId); AZStd::unique_lock lock(m_mutex); @@ -502,11 +504,11 @@ namespace AZ void ShaderVariantAsyncLoader::QueueShaderVariantTreeForLoading( - const PairOfShaderAssetAndShaderVariantId& shaderAndVariantPair, + const TupleShaderAssetAndShaderVariantId& shaderAndVariantTuple, AZStd::unordered_set& shaderVariantTreePendingRequests) { - auto shaderAssetId = shaderAndVariantPair.m_shaderAsset.GetId(); - if (shaderVariantTreePendingRequests.count(shaderAndVariantPair.m_shaderAsset.GetId())) + auto shaderAssetId = shaderAndVariantTuple.m_shaderAsset.GetId(); + if (shaderVariantTreePendingRequests.count(shaderAndVariantTuple.m_shaderAsset.GetId())) { // Already queued. return; diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp index 24dfcb7097..f86a51124b 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp @@ -55,11 +55,11 @@ namespace AZ AZ::MakePerspectiveFovMatrixRH(viewToClipMatrix, AZ::Constants::HalfPi, 1, 0.1f, 1000.f, true); SetViewToClipMatrix(viewToClipMatrix); - Data::Asset viewSrgAsset = RPISystemInterface::Get()->GetViewSrgAsset(); + Data::Asset viewSrgShaderAsset = RPISystemInterface::Get()->GetCommonShaderAssetForSrgs(); - if (viewSrgAsset.IsReady()) + if (viewSrgShaderAsset.IsReady()) { - m_shaderResourceGroup = ShaderResourceGroup::Create(viewSrgAsset); + m_shaderResourceGroup = ShaderResourceGroup::Create(viewSrgShaderAsset, DefaultSupervariantIndex, RPISystemInterface::Get()->GetViewSrgLayout()->GetName()); } #if AZ_TRAIT_MASKED_OCCLUSION_CULLING_SUPPORTED m_maskedOcclusionCulling = MaskedOcclusionCulling::Create(); diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialAsset.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialAsset.cpp index 7e9e2ddb10..0afc174ad3 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialAsset.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialAsset.cpp @@ -64,14 +64,34 @@ namespace AZ return m_materialTypeAsset->GetMaterialFunctors(); } - const AZ::Data::Asset& MaterialAsset::GetMaterialSrgAsset() const + const RHI::Ptr& MaterialAsset::GetMaterialSrgLayout(const SupervariantIndex& supervariantIndex) const { - return m_materialTypeAsset->GetMaterialSrgAsset(); + return m_materialTypeAsset->GetMaterialSrgLayout(supervariantIndex); } - const AZ::Data::Asset& MaterialAsset::GetObjectSrgAsset() const + const RHI::Ptr& MaterialAsset::GetMaterialSrgLayout(const AZ::Name& supervariantName) const { - return m_materialTypeAsset->GetObjectSrgAsset(); + return m_materialTypeAsset->GetMaterialSrgLayout(supervariantName); + } + + const RHI::Ptr& MaterialAsset::GetMaterialSrgLayout() const + { + return m_materialTypeAsset->GetMaterialSrgLayout(); + } + + const RHI::Ptr& MaterialAsset::GetObjectSrgLayout(const SupervariantIndex& supervariantIndex) const + { + return m_materialTypeAsset->GetObjectSrgLayout(supervariantIndex); + } + + const RHI::Ptr& MaterialAsset::GetObjectSrgLayout(const AZ::Name& supervariantName) const + { + return m_materialTypeAsset->GetObjectSrgLayout(supervariantName); + } + + const RHI::Ptr& MaterialAsset::GetObjectSrgLayout() const + { + return m_materialTypeAsset->GetObjectSrgLayout(); } const MaterialPropertiesLayout* MaterialAsset::GetMaterialPropertiesLayout() const diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialTypeAsset.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialTypeAsset.cpp index 20adb63cb8..145eedf2e6 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialTypeAsset.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialTypeAsset.cpp @@ -48,11 +48,11 @@ namespace AZ serializeContext->RegisterGenericType(); serializeContext->Class() - ->Version(3) + ->Version(4) // ATOM-15472 ->Field("ShaderCollection", &MaterialTypeAsset::m_shaderCollection) ->Field("MaterialFunctors", &MaterialTypeAsset::m_materialFunctors) - ->Field("MaterialSrgAsset", &MaterialTypeAsset::m_materialSrgAsset) - ->Field("ObjectSrgAsset", &MaterialTypeAsset::m_objectSrgAsset) + ->Field("MaterialSrgShaderIndex", &MaterialTypeAsset::m_materialSrgShaderIndex) + ->Field("ObjectSrgShaderIndex", &MaterialTypeAsset::m_objectSrgShaderIndex) ->Field("MaterialPropertiesLayout", &MaterialTypeAsset::m_materialPropertiesLayout) ->Field("DefaultPropertyValues", &MaterialTypeAsset::m_propertyValues) ->Field("UvNameMap", &MaterialTypeAsset::m_uvNameMap) @@ -77,14 +77,76 @@ namespace AZ return m_materialFunctors; } - const AZ::Data::Asset& MaterialTypeAsset::GetMaterialSrgAsset() const + const RHI::Ptr& MaterialTypeAsset::GetSrgLayout( + uint32_t shaderIndex, const SupervariantIndex& supervariantIndex, uint32_t srgBindingSlot) const { - return m_materialSrgAsset; + const bool validShaderIndex = (m_shaderCollection.size() > shaderIndex); + if (!validShaderIndex) + { + return RHI::NullSrgLayout; + } + const auto& shaderAsset = m_shaderCollection[shaderIndex].GetShaderAsset(); + return shaderAsset->FindShaderResourceGroupLayout(srgBindingSlot, supervariantIndex); } - const AZ::Data::Asset& MaterialTypeAsset::GetObjectSrgAsset() const + const RHI::Ptr& MaterialTypeAsset::GetSrgLayout( + uint32_t shaderIndex, const AZ::Name& supervariantName, uint32_t srgBindingSlot) const { - return m_objectSrgAsset; + const bool validShaderIndex = (m_shaderCollection.size() > shaderIndex); + if (!validShaderIndex) + { + return RHI::NullSrgLayout; + } + const auto& shaderAsset = m_shaderCollection[shaderIndex].GetShaderAsset(); + auto supervariantIndex = shaderAsset->GetSupervariantIndex(supervariantName); + return shaderAsset->FindShaderResourceGroupLayout(srgBindingSlot, supervariantIndex); + } + + const RHI::Ptr& MaterialTypeAsset::GetMaterialSrgLayout( + const SupervariantIndex& supervariantIndex) const + { + return GetSrgLayout(m_materialSrgShaderIndex, supervariantIndex, RPI::SrgBindingSlot::Material); + } + + const RHI::Ptr& MaterialTypeAsset::GetMaterialSrgLayout(const AZ::Name& supervariantName) const + { + return GetSrgLayout(m_materialSrgShaderIndex, supervariantName, RPI::SrgBindingSlot::Material); + } + + const RHI::Ptr& MaterialTypeAsset::GetMaterialSrgLayout() const + { + return GetMaterialSrgLayout(DefaultSupervariantIndex); + } + + const Data::Asset& MaterialTypeAsset::GetShaderAssetForMaterialSrg() const + { + AZ_Assert(m_shaderCollection.size() > m_materialSrgShaderIndex, "shaderIndex %u is invalid because there are only %zu shaders in the collection", m_materialSrgShaderIndex, + m_shaderCollection.size()); + return m_shaderCollection[m_materialSrgShaderIndex].GetShaderAsset(); + } + + const RHI::Ptr& MaterialTypeAsset::GetObjectSrgLayout( + const SupervariantIndex& supervariantIndex) const + { + return GetSrgLayout(m_objectSrgShaderIndex, supervariantIndex, RPI::SrgBindingSlot::Object); + } + + const RHI::Ptr& MaterialTypeAsset::GetObjectSrgLayout(const AZ::Name& supervariantName) const + { + return GetSrgLayout(m_objectSrgShaderIndex, supervariantName, RPI::SrgBindingSlot::Object); + } + + const RHI::Ptr& MaterialTypeAsset::GetObjectSrgLayout() const + { + return GetObjectSrgLayout(DefaultSupervariantIndex); + } + + const Data::Asset& MaterialTypeAsset::GetShaderAssetForObjectSrg() const + { + AZ_Assert(m_shaderCollection.size() > m_objectSrgShaderIndex, + "shaderIndex %u is invalid because there are only %zu shaders in the collection", m_objectSrgShaderIndex, + m_shaderCollection.size()); + return m_shaderCollection[m_objectSrgShaderIndex].GetShaderAsset(); } const MaterialPropertiesLayout* MaterialTypeAsset::GetMaterialPropertiesLayout() const @@ -109,13 +171,10 @@ namespace AZ bool MaterialTypeAsset::PostLoadInit() { - Data::AssetBus::MultiHandler::BusConnect(m_materialSrgAsset.GetId()); - Data::AssetBus::MultiHandler::BusConnect(m_objectSrgAsset.GetId()); for (const auto& shaderItem : m_shaderCollection) { Data::AssetBus::MultiHandler::BusConnect(shaderItem.GetShaderAsset().GetId()); } - return true; } @@ -135,8 +194,6 @@ namespace AZ // The order of asset reloads is non-deterministic. If the MaterialTypeAsset reloads before these // dependency assets, this will make sure the MaterialTypeAsset gets the latest ones when they reload. // Or in some cases a these assets could get updated and reloaded without reloading the MaterialTypeAsset at all. - TryReplaceAsset(m_materialSrgAsset, asset); - TryReplaceAsset(m_objectSrgAsset, asset); for (auto& shaderItem : m_shaderCollection) { TryReplaceAsset(shaderItem.m_shaderAsset, asset); diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialTypeAssetCreator.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialTypeAssetCreator.cpp index 3ac44a2eec..bdae7a9c03 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialTypeAssetCreator.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Material/MaterialTypeAssetCreator.cpp @@ -57,33 +57,30 @@ namespace AZ return EndCommon(result); } - bool MaterialTypeAssetCreator::UpdateShaderResourceGroup( - Data::Asset& srgAssetToUpdate, - const Data::Asset& newShaderAsset, - uint32_t bindingSlot, - const char* srgDebugName) + bool MaterialTypeAssetCreator::UpdateShaderIndexForShaderResourceGroup( + uint32_t& srgShaderIndexToUpdate, const Data::Asset& newShaderAsset, const uint32_t newShaderAssetIndex, const uint32_t bindingSlot, const char* srgDebugName) { - auto& newSrgAsset = newShaderAsset->FindShaderResourceGroupAsset(bindingSlot); + const auto& newSrgLayout = newShaderAsset->FindShaderResourceGroupLayout(bindingSlot); - if (srgAssetToUpdate.GetId().IsValid() && - newSrgAsset.GetId().IsValid() && - srgAssetToUpdate.GetId() != newSrgAsset.GetId()) + if (!newSrgLayout) { - ReportError("All shaders in a material must use the same %s ShaderResourceGroup.", srgDebugName); - return false; + // It's ok if newShaderAsset doesn't have the SRG. Only some of the shaders may have an SRG of a given type. + return true; } - // It doesn't appear this case is actually possible right now, but checking anyway for completeness - if (newSrgAsset.GetId().IsValid() && !newSrgAsset.IsReady()) + if (srgShaderIndexToUpdate != MaterialTypeAsset::InvalidShaderIndex) { - ReportError("The %s ShaderResourceGroup is not loaded.", srgDebugName); - return false; + const auto& currentShaderAsset = m_asset->m_shaderCollection[srgShaderIndexToUpdate].GetShaderAsset(); + const auto& currentSrgLayout = currentShaderAsset->FindShaderResourceGroupLayout(bindingSlot); + if (currentSrgLayout->GetHash() != newSrgLayout->GetHash()) + { + ReportError("All shaders in a material must use the same %s ShaderResourceGroup.", srgDebugName); + return false; + } } - - // Only some of the shaders may have an SRG of a given type, so don't clear an SRG that was found in one of the other shaders. - if (newSrgAsset) + else { - srgAssetToUpdate = newSrgAsset; + srgShaderIndexToUpdate = newShaderAssetIndex; } return true; @@ -93,10 +90,12 @@ namespace AZ { if (!m_materialShaderResourceGroupLayout) { - if (m_asset->m_materialSrgAsset) + if (m_asset->m_materialSrgShaderIndex != MaterialTypeAsset::InvalidShaderIndex) { - m_materialShaderResourceGroupLayout = m_asset->m_materialSrgAsset->GetLayout(); - + // [GFX TODO] At the moment we are using the default supervariant. + // In the future it may be necessary to get the layout + // from a particular supervariant. + m_materialShaderResourceGroupLayout = m_asset->GetMaterialSrgLayout().get(); if (!m_materialShaderResourceGroupLayout) { ReportError("Shader resource group has a null layout."); @@ -115,9 +114,9 @@ namespace AZ ReportError(AZStd::string::format("Failed to insert shader tag '%s'. Shader tag must be unique.", shaderTag.GetCStr()).c_str()); } - // [GFX TODO]: Stop using hard-coded material srg name once we have SRG semantics in place - UpdateShaderResourceGroup(m_asset->m_materialSrgAsset, shaderAsset, SrgBindingSlot::Material, "material"); - UpdateShaderResourceGroup(m_asset->m_objectSrgAsset, shaderAsset, SrgBindingSlot::Object, "object"); + uint32_t newShaderIndex = aznumeric_caster(m_asset->m_shaderCollection.m_shaderItems.size() - 1); + UpdateShaderIndexForShaderResourceGroup(m_asset->m_materialSrgShaderIndex, shaderAsset, newShaderIndex, SrgBindingSlot::Material, "material"); + UpdateShaderIndexForShaderResourceGroup(m_asset->m_objectSrgShaderIndex, shaderAsset, newShaderIndex, SrgBindingSlot::Object, "object"); CacheMaterialSrgLayout(); } diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/RPISystemDescriptor.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/RPISystemDescriptor.cpp index 11ed1b2aee..e7628697e0 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/RPISystemDescriptor.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Reflect/RPISystemDescriptor.cpp @@ -28,10 +28,9 @@ namespace AZ ; serializeContext->Class() - ->Version(5) + ->Version(6) // ATOM-15472 ->Field("RHISystemDescriptor", &RPISystemDescriptor::m_rhiSystemDescriptor) - ->Field("SceneSRGAssetPath", &RPISystemDescriptor::m_sceneSrgAssetPath) - ->Field("ViewSRGAssetPath", &RPISystemDescriptor::m_viewSrgAssetPath) + ->Field("CommonSrgsShaderAssetPath", &RPISystemDescriptor::m_commonSrgsShaderAssetPath) ->Field("ImageSystemDescriptor", &RPISystemDescriptor::m_imageSystemDescriptor) ->Field("GpuQuerySystemDescriptor", &RPISystemDescriptor::m_gpuQuerySystemDescriptor) ->Field("DynamicDrawSystemDescriptor", &RPISystemDescriptor::m_dynamicDrawSystemDescriptor) @@ -50,8 +49,8 @@ namespace AZ ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("System", 0xc94d118b)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) - ->DataElement(AZ::Edit::UIHandlers::Default, &RPISystemDescriptor::m_sceneSrgAssetPath, "Scene SRG Asset Path", "Shader Resource Group asset path for all RPI scenes") - ->DataElement(AZ::Edit::UIHandlers::Default, &RPISystemDescriptor::m_viewSrgAssetPath, "View SRG Asset Path", "Shader Resource Group asset path for all RPI views") + ->DataElement(AZ::Edit::UIHandlers::Default, &RPISystemDescriptor::m_commonSrgsShaderAssetPath, "Common Shader Asset Path For Scene & View SRGs", + "Shader asset path used to get the Scene and View SRGs for all RPI scenes and views respectively") ->DataElement(AZ::Edit::UIHandlers::Default, &RPISystemDescriptor::m_rhiSystemDescriptor, "RHI System Config", "Configuration of Render Hardware Interface") ->DataElement(AZ::Edit::UIHandlers::Default, &RPISystemDescriptor::m_imageSystemDescriptor, "Image System Config", "Configuration of Image System") ->DataElement(AZ::Edit::UIHandlers::Default, &RPISystemDescriptor::m_gpuQuerySystemDescriptor, "Gpu Query System Config", "Configuration of Gpu Query System") diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.cpp index 079d72358d..82aadd3b17 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.cpp @@ -37,10 +37,9 @@ namespace AZ if (auto* serializeContext = azrtti_cast(context)) { serializeContext->Class() - ->Version(0) + ->Version(1) // ATOM-15472 ->Field("ShaderAssetFileName", &PrecompiledShaderAssetSourceData::m_shaderAssetFileName) ->Field("PlatformIdentifiers", &PrecompiledShaderAssetSourceData::m_platformIdentifiers) - ->Field("ShaderResourceGroupAssets", &PrecompiledShaderAssetSourceData::m_srgAssetFileNames) ->Field("RootShaderVariantAssets", &PrecompiledShaderAssetSourceData::m_rootShaderVariantAssets) ; } diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAsset.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAsset.cpp index cf655d43f7..08d0cab935 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAsset.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAsset.cpp @@ -27,58 +27,85 @@ namespace AZ { namespace RPI { - const char* ShaderAsset::DisplayName = "Shader"; - const char* ShaderAsset::Extension = "azshader"; - const char* ShaderAsset::Group = "Shader"; + const ShaderVariantStableId ShaderAsset::RootShaderVariantStableId{0}; - const ShaderVariantStableId ShaderAsset::RootShaderVariantStableId{ 0 }; + static constexpr uint32_t SubProductTypeBitPosition = 0; + static constexpr uint32_t SubProductTypeNumBits = SupervariantIndexBitPosition - SubProductTypeBitPosition; + static constexpr uint32_t SubProductTypeMaxValue = (1 << SubProductTypeNumBits) - 1; - uint32_t ShaderAsset::MakeAssetProductSubId(uint32_t rhiApiUniqueIndex, uint32_t subProductType) + static_assert(RhiIndexMaxValue == RHI::Limits::APIType::PerPlatformApiUniqueIndexMax); + + uint32_t ShaderAsset::MakeProductAssetSubId( + uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, uint32_t subProductType) { - static constexpr uint32_t SubProductTypeBitPosition = 0; - static constexpr uint32_t SubProductTypeNumBits = RhiIndexBitPosition - SubProductTypeBitPosition; - static constexpr uint32_t SubProductTypeMaxValue = (1 << SubProductTypeNumBits) - 1; - - static_assert(RhiIndexMaxValue == RHI::Limits::APIType::PerPlatformApiUniqueIndexMax); AZ_Assert(rhiApiUniqueIndex <= RhiIndexMaxValue, "Invalid rhiApiUniqueIndex [%u]", rhiApiUniqueIndex); + AZ_Assert(supervariantIndex <= SupervariantIndexMaxValue, "Invalid supervariantIndex [%u]", supervariantIndex); AZ_Assert(subProductType <= SubProductTypeMaxValue, "Invalid subProductType [%u]", subProductType); const uint32_t assetProductSubId = (rhiApiUniqueIndex << RhiIndexBitPosition) | - (subProductType << SubProductTypeBitPosition); + (supervariantIndex << SupervariantIndexBitPosition) | (subProductType << SubProductTypeBitPosition); return assetProductSubId; } + SupervariantIndex ShaderAsset::GetSupervariantIndexFromProductAssetSubId(uint32_t assetProducSubId) + { + const uint32_t supervariantIndex = assetProducSubId >> SupervariantIndexBitPosition; + return SupervariantIndex{supervariantIndex & SupervariantIndexMaxValue}; + } + + SupervariantIndex ShaderAsset::GetSupervariantIndexFromAssetId(const Data::AssetId& assetId) + { + return GetSupervariantIndexFromProductAssetSubId(assetId.m_subId); + } + + void ShaderAsset::Supervariant::Reflect(AZ::ReflectContext* context) + { + if (auto* serializeContext = azrtti_cast(context)) + { + serializeContext->Class() + ->Version(1) + ->Field("Name", &Supervariant::m_name) + ->Field("SrgLayoutList", &Supervariant::m_srgLayoutList) + ->Field("PipelineLayout", &Supervariant::m_pipelineLayoutDescriptor) + ->Field("InputContract", &Supervariant::m_inputContract) + ->Field("OutputContract", &Supervariant::m_outputContract) + ->Field("RenderStates", &Supervariant::m_renderStates) + ->Field("AttributeMapList", &Supervariant::m_attributeMaps) + ->Field("RootVariantAsset", &Supervariant::m_rootShaderVariantAsset) + ; + } + } + void ShaderAsset::ShaderApiDataContainer::Reflect(AZ::ReflectContext* context) { if (auto* serializeContext = azrtti_cast(context)) { serializeContext->Class() - ->Version(5) + ->Version(1) ->Field("APIType", &ShaderApiDataContainer::m_APIType) - ->Field("PipelineLayoutDescriptor", &ShaderApiDataContainer::m_pipelineLayoutDescriptor) - ->Field("RootShaderVariantAsset", &ShaderApiDataContainer::m_rootShaderVariantAsset) - ->Field("AttributeMaps", &ShaderApiDataContainer::m_attributeMaps) + ->Field("Supervariants", &ShaderApiDataContainer::m_supervariants) ; } } void ShaderAsset::Reflect(ReflectContext* context) { + Supervariant::Reflect(context); + + ShaderApiDataContainer::Reflect(context); + if (auto* serializeContext = azrtti_cast(context)) { serializeContext->Class() - ->Version(6) + ->Version(1) ->Field("name", &ShaderAsset::m_name) ->Field("pipelineStateType", &ShaderAsset::m_pipelineStateType) - ->Field("shaderResourceGroupAssets", &ShaderAsset::m_shaderResourceGroupAssets) ->Field("shaderOptionGroupLayout", &ShaderAsset::m_shaderOptionGroupLayout) - ->Field("perAPIShaderData", &ShaderAsset::m_perAPIShaderData) ->Field("drawListName", &ShaderAsset::m_drawListName) ->Field("shaderAssetBuildTimestamp", &ShaderAsset::m_shaderAssetBuildTimestamp) + ->Field("perAPIShaderData", &ShaderAsset::m_perAPIShaderData) ; } - - ShaderApiDataContainer::Reflect(context); } ShaderAsset::~ShaderAsset() @@ -92,19 +119,62 @@ namespace AZ return m_name; } - Data::Asset ShaderAsset::GetVariant(const ShaderVariantId& shaderVariantId) + RHI::PipelineStateType ShaderAsset::GetPipelineStateType() const + { + return m_pipelineStateType; + } + + const ShaderOptionGroupLayout* ShaderAsset::GetShaderOptionGroupLayout() const + { + AZ_Assert(m_shaderOptionGroupLayout, "m_shaderOptionGroupLayout is null"); + return m_shaderOptionGroupLayout.get(); + } + + const Name& ShaderAsset::GetDrawListName() const + { + return m_drawListName; + } + + AZStd::sys_time_t ShaderAsset::GetShaderAssetBuildTimestamp() const + { + return m_shaderAssetBuildTimestamp; + } + + void ShaderAsset::SetReady() + { + m_status = AssetStatus::Ready; + } + + + SupervariantIndex ShaderAsset::GetSupervariantIndex(const AZ::Name& supervariantName) const + { + const auto& supervariants = GetCurrentShaderApiData().m_supervariants; + const uint32_t supervariantCount = supervariants.size(); + for (uint32_t index = 0; index < supervariantCount; ++index) + { + if (supervariants[index].m_name == supervariantName) + { + return SupervariantIndex{index}; + } + } + return InvalidSupervariantIndex; + } + + + Data::Asset ShaderAsset::GetVariant( + const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) { AZ_PROFILE_FUNCTION(Debug::ProfileCategory::AzRender); auto variantFinder = AZ::Interface::Get(); AZ_Assert(variantFinder, "The IShaderVariantFinder doesn't exist"); - Data::Asset shaderVariantAsset = variantFinder->GetShaderVariantAssetByVariantId( - Data::Asset(this, Data::AssetLoadBehavior::Default), shaderVariantId); + Data::Asset thisAsset(this, Data::AssetLoadBehavior::Default); + Data::Asset shaderVariantAsset = + variantFinder->GetShaderVariantAssetByVariantId(thisAsset, shaderVariantId, supervariantIndex); if (!shaderVariantAsset) { - variantFinder->QueueLoadShaderVariantAssetByVariantId( - Data::Asset(this, Data::AssetLoadBehavior::Default), shaderVariantId); + variantFinder->QueueLoadShaderVariantAssetByVariantId(thisAsset, shaderVariantId, supervariantIndex); } return shaderVariantAsset; } @@ -152,16 +222,18 @@ namespace AZ return m_shaderVariantTree->FindVariantStableId(GetShaderOptionGroupLayout(), shaderVariantId); } - Data::Asset ShaderAsset::GetVariant(ShaderVariantStableId shaderVariantStableId) const + Data::Asset ShaderAsset::GetVariant( + ShaderVariantStableId shaderVariantStableId, SupervariantIndex supervariantIndex) const { if (!shaderVariantStableId.IsValid() || shaderVariantStableId == RootShaderVariantStableId) { - return GetRootVariant(); + return GetRootVariant(supervariantIndex); } auto variantFinder = AZ::Interface::Get(); AZ_Assert(variantFinder, "No Variant Finder For shaderAsset with name [%s] and stableId [%u]", GetName().GetCStr(), shaderVariantStableId.GetIndex()); - Data::Asset variant = variantFinder->GetShaderVariantAsset(m_shaderVariantTree.GetId(), shaderVariantStableId); + Data::Asset variant = + variantFinder->GetShaderVariantAsset(m_shaderVariantTree.GetId(), shaderVariantStableId, supervariantIndex); if (!variant.IsReady()) { // Enqueue a request to load the variant, next time around the caller will get the asset. @@ -175,11 +247,11 @@ namespace AZ } if (variantTreeAssetId.IsValid()) { - variantFinder->QueueLoadShaderVariantAsset(variantTreeAssetId, shaderVariantStableId); + variantFinder->QueueLoadShaderVariantAsset(variantTreeAssetId, shaderVariantStableId, supervariantIndex); } - return GetRootVariant(); + return GetRootVariant(supervariantIndex); } - else if (variant->GetShaderAssetBuildTimestamp() == m_shaderAssetBuildTimestamp) + else if (variant->GetBuildTimestamp() >= m_shaderAssetBuildTimestamp) { return variant; } @@ -188,98 +260,146 @@ namespace AZ // When rebuilding shaders we may be in a state where the ShaderAsset and root ShaderVariantAsset have been rebuilt and reloaded, but some (or all) // shader variants haven't been built yet. Since we want to use the latest version of the shader code, ignore the old variants and fall back to the newer root variant instead. AZ_Warning("ShaderAsset", false, "ShaderAsset and ShaderVariantAsset are out of sync; defaulting to root shader variant. (This is common while reloading shaders)."); - return GetRootVariant(); + return GetRootVariant(supervariantIndex); } } - Data::Asset ShaderAsset::GetRootVariant() const + Data::Asset ShaderAsset::GetRootVariant(SupervariantIndex supervariantIndex) const { - return GetCurrentShaderApiData().m_rootShaderVariantAsset; + auto supervariant = GetSupervariant(supervariantIndex); + if (!supervariant) + { + return Data::Asset(); + } + return supervariant->m_rootShaderVariantAsset; } - const Data::Asset& ShaderAsset::FindShaderResourceGroupAsset(const Name& shaderResourceGroupName) const + const RHI::Ptr& ShaderAsset::FindShaderResourceGroupLayout( + const Name& shaderResourceGroupName, SupervariantIndex supervariantIndex) const { - const auto findIt = AZStd::find_if(m_shaderResourceGroupAssets.begin(), m_shaderResourceGroupAssets.end(), [&](const Data::Asset& asset) + auto supervariant = GetSupervariant(supervariantIndex); + if (!supervariant) + { + return RHI::NullSrgLayout; + } + const auto& srgLayoutList = supervariant->m_srgLayoutList; + const auto findIt = AZStd::find_if(srgLayoutList.begin(), srgLayoutList.end(), [&](const RHI::Ptr& layout) { - return asset->GetName() == shaderResourceGroupName; + return layout->GetName() == shaderResourceGroupName; }); - if (findIt != m_shaderResourceGroupAssets.end()) + if (findIt != srgLayoutList.end()) { return *findIt; } - static const Data::Asset s_nullAsset; - return s_nullAsset; + return RHI::NullSrgLayout; } - const Data::Asset& ShaderAsset::FindShaderResourceGroupAsset(uint32_t bindingSlot) const + const RHI::Ptr& ShaderAsset::FindShaderResourceGroupLayout( + uint32_t bindingSlot, SupervariantIndex supervariantIndex) const { - const auto findIt = AZStd::find_if(m_shaderResourceGroupAssets.begin(), m_shaderResourceGroupAssets.end(), [&](const Data::Asset& asset) + auto supervariant = GetSupervariant(supervariantIndex); + if (!supervariant) + { + return RHI::NullSrgLayout; + } + const auto& srgLayoutList = supervariant->m_srgLayoutList; + const auto findIt = + AZStd::find_if(srgLayoutList.begin(), srgLayoutList.end(), [&](const RHI::Ptr& layout) { - const auto layout = asset->GetLayout(); return layout && layout->GetBindingSlot() == bindingSlot; }); - if (findIt != m_shaderResourceGroupAssets.end()) + if (findIt != srgLayoutList.end()) { return *findIt; } - static const Data::Asset s_nullAsset; - return s_nullAsset; + return RHI::NullSrgLayout; } - const Data::Asset& ShaderAsset::FindFallbackShaderResourceGroupAsset() const + const RHI::Ptr& ShaderAsset::FindFallbackShaderResourceGroupLayout( + SupervariantIndex supervariantIndex) const { - const auto findIt = AZStd::find_if(m_shaderResourceGroupAssets.begin(), m_shaderResourceGroupAssets.end(), [&](const Data::Asset& asset) + auto supervariant = GetSupervariant(supervariantIndex); + if (!supervariant) + { + return RHI::NullSrgLayout; + } + const auto& srgLayoutList = supervariant->m_srgLayoutList; + const auto findIt = + AZStd::find_if(srgLayoutList.begin(), srgLayoutList.end(), [&](const RHI::Ptr& layout) { - const auto layout = asset->GetLayout(); return layout && layout->HasShaderVariantKeyFallbackEntry(); }); - if (findIt != m_shaderResourceGroupAssets.end()) + if (findIt != srgLayoutList.end()) { return *findIt; } - static const Data::Asset s_nullAsset; - return s_nullAsset; + return RHI::NullSrgLayout; } - AZStd::array_view> ShaderAsset::GetShaderResourceGroupAssets() const + AZStd::array_view> ShaderAsset::GetShaderResourceGroupLayouts( + SupervariantIndex supervariantIndex) const { - return m_shaderResourceGroupAssets; + auto supervariant = GetSupervariant(supervariantIndex); + if (!supervariant) + { + return {}; + } + return supervariant->m_srgLayoutList; } - RHI::PipelineStateType ShaderAsset::GetPipelineStateType() const + + const RHI::Ptr& ShaderAsset::GetDrawSrgLayout(SupervariantIndex supervariantIndex) const { - return m_pipelineStateType; + return FindShaderResourceGroupLayout(SrgBindingSlot::Draw, supervariantIndex); } - const RHI::PipelineLayoutDescriptor* ShaderAsset::GetPipelineLayoutDescriptor() const + const ShaderInputContract& ShaderAsset::GetInputContract(SupervariantIndex supervariantIndex) const { - AZ_Assert(GetCurrentShaderApiData().m_pipelineLayoutDescriptor, "m_pipelineLayoutDescriptor is null"); - return GetCurrentShaderApiData().m_pipelineLayoutDescriptor.get(); + auto supervariant = GetSupervariant(supervariantIndex); + return supervariant->m_inputContract; } - const ShaderOptionGroupLayout* ShaderAsset::GetShaderOptionGroupLayout() const + const ShaderOutputContract& ShaderAsset::GetOutputContract(SupervariantIndex supervariantIndex) const { - AZ_Assert(m_shaderOptionGroupLayout, "m_shaderOptionGroupLayout is null"); - return m_shaderOptionGroupLayout.get(); + auto supervariant = GetSupervariant(supervariantIndex); + return supervariant->m_outputContract; } - const AZ::Data::Asset& ShaderAsset::GetDrawSrgAsset() const + const RHI::RenderStates& ShaderAsset::GetRenderStates(SupervariantIndex supervariantIndex) const { - return FindShaderResourceGroupAsset(SrgBindingSlot::Draw); + auto supervariant = GetSupervariant(supervariantIndex); + return supervariant->m_renderStates; } - AZStd::optional ShaderAsset::GetAttribute(const RHI::ShaderStage& shaderStage, const Name& attributeName) const + const RHI::PipelineLayoutDescriptor* ShaderAsset::GetPipelineLayoutDescriptor(SupervariantIndex supervariantIndex) const { + auto supervariant = GetSupervariant(supervariantIndex); + if (!supervariant) + { + return nullptr; + } + AZ_Assert(supervariant->m_pipelineLayoutDescriptor, "m_pipelineLayoutDescriptor is null"); + return supervariant->m_pipelineLayoutDescriptor.get(); + } + + AZStd::optional ShaderAsset::GetAttribute(const RHI::ShaderStage& shaderStage, const Name& attributeName, + SupervariantIndex supervariantIndex) const + { + auto supervariant = GetSupervariant(supervariantIndex); + if (!supervariant) + { + return AZStd::nullopt; + } const auto stageIndex = static_cast(shaderStage); AZ_Assert(stageIndex < RHI::ShaderStageCount, "Invalid shader stage specified!"); - const auto& attributeMaps = GetCurrentShaderApiData().m_attributeMaps; + const auto& attributeMaps = supervariant->m_attributeMaps; const auto& attrPair = attributeMaps[stageIndex].find(attributeName); if (attrPair == attributeMaps[stageIndex].end()) { @@ -289,21 +409,6 @@ namespace AZ return attrPair->second; } - const Name& ShaderAsset::GetDrawListName() const - { - return m_drawListName; - } - - AZStd::sys_time_t ShaderAsset::GetShaderAssetBuildTimestamp() const - { - return m_shaderAssetBuildTimestamp; - } - - void ShaderAsset::SetReady() - { - m_status = AssetStatus::Ready; - } - ShaderAsset::ShaderApiDataContainer& ShaderAsset::GetCurrentShaderApiData() { const size_t perApiShaderDataCount = m_perAPIShaderData.size(); @@ -332,6 +437,36 @@ namespace AZ return m_perAPIShaderData[0]; } + ShaderAsset::Supervariant* ShaderAsset::GetSupervariant(SupervariantIndex supervariantIndex) + { + auto& supervariants = GetCurrentShaderApiData().m_supervariants; + auto index = supervariantIndex.GetIndex(); + if (index >= supervariants.size()) + { + AZ_Error( + "ShaderAsset", false, "Supervariant index = %u is invalid because there are only %zu supervariants", index, + supervariants.size()); + return nullptr; + } + + return &supervariants[index]; + } + + const ShaderAsset::Supervariant* ShaderAsset::GetSupervariant(SupervariantIndex supervariantIndex) const + { + const auto& supervariants = GetCurrentShaderApiData().m_supervariants; + auto index = supervariantIndex.GetIndex(); + if (index >= supervariants.size()) + { + AZ_Error( + "ShaderAsset", false, "Supervariant index = %u is invalid because there are only %zu supervariants", index, + supervariants.size()); + return nullptr; + } + + return &supervariants[index]; + } + bool ShaderAsset::FinalizeAfterLoad() { // Use the current RHI that is active to select which shader data to use. @@ -362,11 +497,15 @@ namespace AZ // Common finalize check for (const auto& shaderApiData : m_perAPIShaderData) { - bool beTrue = shaderApiData.m_attributeMaps.size() == RHI::ShaderStageCount; - if (!beTrue) + const auto& supervariants = shaderApiData.m_supervariants; + for (const auto& supervariant : supervariants) { - AZ_Error("ShaderAsset", false, "Unexpected number of shader stages!"); - return false; + bool beTrue = supervariant.m_attributeMaps.size() == RHI::ShaderStageCount; + if (!beTrue) + { + AZ_Error("ShaderAsset", false, "Unexpected number of shader stages at supervariant with name [%s]!", supervariant.m_name.GetCStr()); + return false; + } } } @@ -386,7 +525,8 @@ namespace AZ Data::Asset shaderVariantAsset = { asset.GetAs(), AZ::Data::AssetLoadBehavior::PreLoad }; AZ_Assert(shaderVariantAsset->GetStableId() == RootShaderVariantStableId, "Was expecting to update the root variant"); - GetCurrentShaderApiData().m_rootShaderVariantAsset = asset; + SupervariantIndex supervariantIndex = GetSupervariantIndexFromAssetId(asset.GetId()); + GetCurrentShaderApiData().m_supervariants[supervariantIndex.GetIndex()].m_rootShaderVariantAsset = asset; ShaderReloadNotificationBus::Event(GetId(), &ShaderReloadNotificationBus::Events::OnShaderAssetReinitialized, Data::Asset{ this, AZ::Data::AssetLoadBehavior::PreLoad } ); } diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAsset2.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAsset2.cpp deleted file mode 100644 index 749f53aae7..0000000000 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAsset2.cpp +++ /dev/null @@ -1,589 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#include - -#include -#include -#include - -#include - -#include -#include -#include -#include - -namespace AZ -{ - namespace RPI - { - const ShaderVariantStableId ShaderAsset2::RootShaderVariantStableId{0}; - - static constexpr uint32_t SubProductTypeBitPosition = 0; - static constexpr uint32_t SubProductTypeNumBits = SupervariantIndexBitPosition - SubProductTypeBitPosition; - static constexpr uint32_t SubProductTypeMaxValue = (1 << SubProductTypeNumBits) - 1; - - static_assert(RhiIndexMaxValue == RHI::Limits::APIType::PerPlatformApiUniqueIndexMax); - - uint32_t ShaderAsset2::MakeProductAssetSubId( - uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, uint32_t subProductType) - { - AZ_Assert(rhiApiUniqueIndex <= RhiIndexMaxValue, "Invalid rhiApiUniqueIndex [%u]", rhiApiUniqueIndex); - AZ_Assert(supervariantIndex <= SupervariantIndexMaxValue, "Invalid supervariantIndex [%u]", supervariantIndex); - AZ_Assert(subProductType <= SubProductTypeMaxValue, "Invalid subProductType [%u]", subProductType); - - const uint32_t assetProductSubId = (rhiApiUniqueIndex << RhiIndexBitPosition) | - (supervariantIndex << SupervariantIndexBitPosition) | (subProductType << SubProductTypeBitPosition); - return assetProductSubId; - } - - SupervariantIndex ShaderAsset2::GetSupervariantIndexFromProductAssetSubId(uint32_t assetProducSubId) - { - const uint32_t supervariantIndex = assetProducSubId >> SupervariantIndexBitPosition; - return SupervariantIndex{supervariantIndex & SupervariantIndexMaxValue}; - } - - SupervariantIndex ShaderAsset2::GetSupervariantIndexFromAssetId(const Data::AssetId& assetId) - { - return GetSupervariantIndexFromProductAssetSubId(assetId.m_subId); - } - - void ShaderAsset2::Supervariant::Reflect(AZ::ReflectContext* context) - { - if (auto* serializeContext = azrtti_cast(context)) - { - serializeContext->Class() - ->Version(1) - ->Field("Name", &Supervariant::m_name) - ->Field("SrgLayoutList", &Supervariant::m_srgLayoutList) - ->Field("PipelineLayout", &Supervariant::m_pipelineLayoutDescriptor) - ->Field("InputContract", &Supervariant::m_inputContract) - ->Field("OutputContract", &Supervariant::m_outputContract) - ->Field("RenderStates", &Supervariant::m_renderStates) - ->Field("AttributeMapList", &Supervariant::m_attributeMaps) - ->Field("RootVariantAsset", &Supervariant::m_rootShaderVariantAsset) - ; - } - } - - void ShaderAsset2::ShaderApiDataContainer::Reflect(AZ::ReflectContext* context) - { - if (auto* serializeContext = azrtti_cast(context)) - { - serializeContext->Class() - ->Version(1) - ->Field("APIType", &ShaderApiDataContainer::m_APIType) - ->Field("Supervariants", &ShaderApiDataContainer::m_supervariants) - ; - } - } - - void ShaderAsset2::Reflect(ReflectContext* context) - { - Supervariant::Reflect(context); - - ShaderApiDataContainer::Reflect(context); - - if (auto* serializeContext = azrtti_cast(context)) - { - serializeContext->Class() - ->Version(1) - ->Field("name", &ShaderAsset2::m_name) - ->Field("pipelineStateType", &ShaderAsset2::m_pipelineStateType) - ->Field("shaderOptionGroupLayout", &ShaderAsset2::m_shaderOptionGroupLayout) - ->Field("drawListName", &ShaderAsset2::m_drawListName) - ->Field("shaderAssetBuildTimestamp", &ShaderAsset2::m_shaderAssetBuildTimestamp) - ->Field("perAPIShaderData", &ShaderAsset2::m_perAPIShaderData) - ; - } - } - - ShaderAsset2::~ShaderAsset2() - { - Data::AssetBus::Handler::BusDisconnect(); - ShaderVariantFinderNotificationBus2::Handler::BusDisconnect(); - } - - const Name& ShaderAsset2::GetName() const - { - return m_name; - } - - RHI::PipelineStateType ShaderAsset2::GetPipelineStateType() const - { - return m_pipelineStateType; - } - - const ShaderOptionGroupLayout* ShaderAsset2::GetShaderOptionGroupLayout() const - { - AZ_Assert(m_shaderOptionGroupLayout, "m_shaderOptionGroupLayout is null"); - return m_shaderOptionGroupLayout.get(); - } - - const Name& ShaderAsset2::GetDrawListName() const - { - return m_drawListName; - } - - AZStd::sys_time_t ShaderAsset2::GetShaderAssetBuildTimestamp() const - { - return m_shaderAssetBuildTimestamp; - } - - void ShaderAsset2::SetReady() - { - m_status = AssetStatus::Ready; - } - - - SupervariantIndex ShaderAsset2::GetSupervariantIndex(const AZ::Name& supervariantName) const - { - const auto& supervariants = GetCurrentShaderApiData().m_supervariants; - const uint32_t supervariantCount = supervariants.size(); - for (uint32_t index = 0; index < supervariantCount; ++index) - { - if (supervariants[index].m_name == supervariantName) - { - return SupervariantIndex{index}; - } - } - return InvalidSupervariantIndex; - } - - - Data::Asset ShaderAsset2::GetVariant( - const ShaderVariantId& shaderVariantId, SupervariantIndex supervariantIndex) - { - AZ_PROFILE_FUNCTION(Debug::ProfileCategory::AzRender); - - auto variantFinder = AZ::Interface::Get(); - AZ_Assert(variantFinder, "The IShaderVariantFinder doesn't exist"); - - Data::Asset thisAsset(this, Data::AssetLoadBehavior::Default); - Data::Asset shaderVariantAsset = - variantFinder->GetShaderVariantAssetByVariantId(thisAsset, shaderVariantId, supervariantIndex); - if (!shaderVariantAsset) - { - variantFinder->QueueLoadShaderVariantAssetByVariantId(thisAsset, shaderVariantId, supervariantIndex); - } - return shaderVariantAsset; - } - - ShaderVariantSearchResult ShaderAsset2::FindVariantStableId(const ShaderVariantId& shaderVariantId) - { - AZ_PROFILE_FUNCTION(Debug::ProfileCategory::AzRender); - - uint32_t dynamicOptionCount = aznumeric_cast(GetShaderOptionGroupLayout()->GetShaderOptions().size()); - ShaderVariantSearchResult variantSearchResult{RootShaderVariantStableId, dynamicOptionCount }; - - if (!dynamicOptionCount) - { - // The shader has no options at all. There's nothing to search. - return variantSearchResult; - } - - auto variantFinder = AZ::Interface::Get(); - AZ_Assert(variantFinder, "The IShaderVariantFinder doesn't exist"); - - { - AZStd::shared_lock lock(m_variantTreeMutex); - if (m_shaderVariantTree) - { - return m_shaderVariantTree->FindVariantStableId(GetShaderOptionGroupLayout(), shaderVariantId); - } - } - - AZStd::unique_lock lock(m_variantTreeMutex); - if (!m_shaderVariantTree) - { - m_shaderVariantTree = variantFinder->GetShaderVariantTreeAsset(GetId()); - if (!m_shaderVariantTree) - { - if (!m_shaderVariantTreeLoadWasRequested) - { - variantFinder->QueueLoadShaderVariantTreeAsset(GetId()); - m_shaderVariantTreeLoadWasRequested = true; - } - - // The variant tree could be under construction or simply doesn't exist at all. - return variantSearchResult; - } - } - return m_shaderVariantTree->FindVariantStableId(GetShaderOptionGroupLayout(), shaderVariantId); - } - - Data::Asset ShaderAsset2::GetVariant( - ShaderVariantStableId shaderVariantStableId, SupervariantIndex supervariantIndex) const - { - if (!shaderVariantStableId.IsValid() || shaderVariantStableId == RootShaderVariantStableId) - { - return GetRootVariant(supervariantIndex); - } - - auto variantFinder = AZ::Interface::Get(); - AZ_Assert(variantFinder, "No Variant Finder For shaderAsset with name [%s] and stableId [%u]", GetName().GetCStr(), shaderVariantStableId.GetIndex()); - Data::Asset variant = - variantFinder->GetShaderVariantAsset(m_shaderVariantTree.GetId(), shaderVariantStableId, supervariantIndex); - if (!variant.IsReady()) - { - // Enqueue a request to load the variant, next time around the caller will get the asset. - Data::AssetId variantTreeAssetId; - { - AZStd::shared_lock lock(m_variantTreeMutex); - if (m_shaderVariantTree) - { - variantTreeAssetId = m_shaderVariantTree.GetId(); - } - } - if (variantTreeAssetId.IsValid()) - { - variantFinder->QueueLoadShaderVariantAsset(variantTreeAssetId, shaderVariantStableId, supervariantIndex); - } - return GetRootVariant(supervariantIndex); - } - else if (variant->GetBuildTimestamp() >= m_shaderAssetBuildTimestamp) - { - return variant; - } - else - { - // When rebuilding shaders we may be in a state where the ShaderAsset2 and root ShaderVariantAsset have been rebuilt and reloaded, but some (or all) - // shader variants haven't been built yet. Since we want to use the latest version of the shader code, ignore the old variants and fall back to the newer root variant instead. - AZ_Warning("ShaderAsset2", false, "ShaderAsset2 and ShaderVariantAsset are out of sync; defaulting to root shader variant. (This is common while reloading shaders)."); - return GetRootVariant(supervariantIndex); - } - } - - Data::Asset ShaderAsset2::GetRootVariant(SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - if (!supervariant) - { - return Data::Asset(); - } - return supervariant->m_rootShaderVariantAsset; - } - - const RHI::Ptr ShaderAsset2::FindShaderResourceGroupLayout( - const Name& shaderResourceGroupName, SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - if (!supervariant) - { - return nullptr; - } - const auto& srgLayoutList = supervariant->m_srgLayoutList; - const auto findIt = AZStd::find_if(srgLayoutList.begin(), srgLayoutList.end(), [&](const RHI::Ptr& layout) - { - return layout->GetName() == shaderResourceGroupName; - }); - - if (findIt != srgLayoutList.end()) - { - return *findIt; - } - - return nullptr; - } - - const RHI::Ptr ShaderAsset2::FindShaderResourceGroupLayout( - uint32_t bindingSlot, SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - if (!supervariant) - { - return nullptr; - } - const auto& srgLayoutList = supervariant->m_srgLayoutList; - const auto findIt = - AZStd::find_if(srgLayoutList.begin(), srgLayoutList.end(), [&](const RHI::Ptr& layout) - { - return layout && layout->GetBindingSlot() == bindingSlot; - }); - - if (findIt != srgLayoutList.end()) - { - return *findIt; - } - - return nullptr; - } - - const RHI::Ptr ShaderAsset2::FindFallbackShaderResourceGroupLayout( - SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - if (!supervariant) - { - return nullptr; - } - const auto& srgLayoutList = supervariant->m_srgLayoutList; - const auto findIt = - AZStd::find_if(srgLayoutList.begin(), srgLayoutList.end(), [&](const RHI::Ptr& layout) - { - return layout && layout->HasShaderVariantKeyFallbackEntry(); - }); - - if (findIt != srgLayoutList.end()) - { - return *findIt; - } - - return nullptr; - } - - AZStd::array_view> ShaderAsset2::GetShaderResourceGroupLayouts( - SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - if (!supervariant) - { - return {}; - } - return supervariant->m_srgLayoutList; - } - - - const RHI::Ptr ShaderAsset2::GetDrawSrgLayout(SupervariantIndex supervariantIndex) const - { - return FindShaderResourceGroupLayout(SrgBindingSlot::Draw, supervariantIndex); - } - - const ShaderInputContract& ShaderAsset2::GetInputContract(SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - return supervariant->m_inputContract; - } - - const ShaderOutputContract& ShaderAsset2::GetOutputContract(SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - return supervariant->m_outputContract; - } - - const RHI::RenderStates& ShaderAsset2::GetRenderStates(SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - return supervariant->m_renderStates; - } - - const RHI::PipelineLayoutDescriptor* ShaderAsset2::GetPipelineLayoutDescriptor(SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - if (!supervariant) - { - return nullptr; - } - AZ_Assert(supervariant->m_pipelineLayoutDescriptor, "m_pipelineLayoutDescriptor is null"); - return supervariant->m_pipelineLayoutDescriptor.get(); - } - - AZStd::optional ShaderAsset2::GetAttribute(const RHI::ShaderStage& shaderStage, const Name& attributeName, - SupervariantIndex supervariantIndex) const - { - auto supervariant = GetSupervariant(supervariantIndex); - if (!supervariant) - { - return AZStd::nullopt; - } - const auto stageIndex = static_cast(shaderStage); - AZ_Assert(stageIndex < RHI::ShaderStageCount, "Invalid shader stage specified!"); - - const auto& attributeMaps = supervariant->m_attributeMaps; - const auto& attrPair = attributeMaps[stageIndex].find(attributeName); - if (attrPair == attributeMaps[stageIndex].end()) - { - return AZStd::nullopt; - } - - return attrPair->second; - } - - ShaderAsset2::ShaderApiDataContainer& ShaderAsset2::GetCurrentShaderApiData() - { - const size_t perApiShaderDataCount = m_perAPIShaderData.size(); - AZ_Assert(perApiShaderDataCount > 0, "Invalid m_perAPIShaderData"); - - if (m_currentAPITypeIndex < perApiShaderDataCount) - { - return m_perAPIShaderData[m_currentAPITypeIndex]; - } - - // We may only endup here when running in a Builder context. - return m_perAPIShaderData[0]; - } - - const ShaderAsset2::ShaderApiDataContainer& ShaderAsset2::GetCurrentShaderApiData() const - { - const size_t perApiShaderDataCount = m_perAPIShaderData.size(); - AZ_Assert(perApiShaderDataCount > 0, "Invalid m_perAPIShaderData"); - - if (m_currentAPITypeIndex < perApiShaderDataCount) - { - return m_perAPIShaderData[m_currentAPITypeIndex]; - } - - // We may only endup here when running in a Builder context. - return m_perAPIShaderData[0]; - } - - ShaderAsset2::Supervariant* ShaderAsset2::GetSupervariant(SupervariantIndex supervariantIndex) - { - auto& supervariants = GetCurrentShaderApiData().m_supervariants; - auto index = supervariantIndex.GetIndex(); - if (index >= supervariants.size()) - { - AZ_Error( - "ShaderAsset2", false, "Supervariant index = %u is invalid because there are only %zu supervariants", index, - supervariants.size()); - return nullptr; - } - - return &supervariants[index]; - } - - const ShaderAsset2::Supervariant* ShaderAsset2::GetSupervariant(SupervariantIndex supervariantIndex) const - { - const auto& supervariants = GetCurrentShaderApiData().m_supervariants; - auto index = supervariantIndex.GetIndex(); - if (index >= supervariants.size()) - { - AZ_Error( - "ShaderAsset2", false, "Supervariant index = %u is invalid because there are only %zu supervariants", index, - supervariants.size()); - return nullptr; - } - - return &supervariants[index]; - } - - bool ShaderAsset2::FinalizeAfterLoad() - { - // Use the current RHI that is active to select which shader data to use. - // We don't assert if the Factory is not available because this method could be called during build time, - // when no Factory is available. Some assets (like the material asset) need to load the ShaderAsset2 - // in order to get some non API specific data (like a ShaderResourceGroup) during their build - // process. If they try to access any RHI API specific data, an assert will be trigger because the - // correct API index will not set. - if (RHI::Factory::IsReady()) - { - auto rhiType = RHI::Factory::Get().GetType(); - auto findIt = AZStd::find_if(m_perAPIShaderData.begin(), m_perAPIShaderData.end(), [&rhiType](const auto& shaderData) - { - return shaderData.m_APIType == rhiType; - }); - - if (findIt != m_perAPIShaderData.end()) - { - m_currentAPITypeIndex = AZStd::distance(m_perAPIShaderData.begin(), findIt); - } - else - { - AZ_Error("ShaderAsset2", false, "Could not find shader for API %s in shader %s", RHI::Factory::Get().GetName().GetCStr(), GetName().GetCStr()); - return false; - } - } - - // Common finalize check - for (const auto& shaderApiData : m_perAPIShaderData) - { - const auto& supervariants = shaderApiData.m_supervariants; - for (const auto& supervariant : supervariants) - { - bool beTrue = supervariant.m_attributeMaps.size() == RHI::ShaderStageCount; - if (!beTrue) - { - AZ_Error("ShaderAsset2", false, "Unexpected number of shader stages at supervariant with name [%s]!", supervariant.m_name.GetCStr()); - return false; - } - } - } - - // Once the ShaderAsset2 is loaded, it is necessary to listen for changes in the Root Variant Asset. - Data::AssetBus::Handler::BusConnect(GetRootVariant().GetId()); - ShaderVariantFinderNotificationBus2::Handler::BusConnect(GetId()); - - return true; - } - - /////////////////////////////////////////////////////////////////////// - // AssetBus overrides... - void ShaderAsset2::OnAssetReloaded(Data::Asset asset) - { - ShaderReloadDebugTracker::ScopedSection reloadSection("ShaderAsset2::OnAssetReloaded %s", asset.GetHint().c_str()); - - Data::Asset shaderVariantAsset = { asset.GetAs(), AZ::Data::AssetLoadBehavior::PreLoad }; - AZ_Assert(shaderVariantAsset->GetStableId() == RootShaderVariantStableId, - "Was expecting to update the root variant"); - SupervariantIndex supervariantIndex = GetSupervariantIndexFromAssetId(asset.GetId()); - GetCurrentShaderApiData().m_supervariants[supervariantIndex.GetIndex()].m_rootShaderVariantAsset = asset; - - ShaderReloadNotificationBus2::Event(GetId(), &ShaderReloadNotificationBus2::Events::OnShaderAssetReinitialized, Data::Asset{ this, AZ::Data::AssetLoadBehavior::PreLoad } ); - } - /////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////// - /// ShaderVariantFinderNotificationBus2 overrides - void ShaderAsset2::OnShaderVariantTreeAssetReady(Data::Asset shaderVariantTreeAsset, bool isError) - { - ShaderReloadDebugTracker::ScopedSection reloadSection("ShaderAsset2::OnShaderVariantTreeAssetReady %s", shaderVariantTreeAsset.GetHint().c_str()); - - AZStd::unique_lock lock(m_variantTreeMutex); - if (isError) - { - m_shaderVariantTree = {}; //This will force to attempt to reload later. - m_shaderVariantTreeLoadWasRequested = false; - } - else - { - m_shaderVariantTree = shaderVariantTreeAsset; - } - lock.unlock(); - ShaderReloadNotificationBus2::Event(GetId(), &ShaderReloadNotificationBus2::Events::OnShaderAssetReinitialized, Data::Asset{ this, AZ::Data::AssetLoadBehavior::PreLoad }); - } - - /////////////////////////////////////////////////////////////////// - - - /////////////////////////////////////////////////////////////////////// - // ShaderAssetHandler - - Data::AssetHandler::LoadResult ShaderAssetHandler2::LoadAssetData( - const Data::Asset& asset, - AZStd::shared_ptr stream, - const Data::AssetFilterCB& assetLoadFilterCB) - { - if (Base::LoadAssetData(asset, stream, assetLoadFilterCB) == Data::AssetHandler::LoadResult::LoadComplete) - { - return PostLoadInit(asset); - } - return Data::AssetHandler::LoadResult::Error; - } - - Data::AssetHandler::LoadResult ShaderAssetHandler2::PostLoadInit(const Data::Asset& asset) - { - if (ShaderAsset2* shaderAsset = asset.GetAs()) - { - if (!shaderAsset->FinalizeAfterLoad()) - { - AZ_Error("ShaderAssetHandler", false, "Shader asset failed to finalize."); - return Data::AssetHandler::LoadResult::Error; - } - return Data::AssetHandler::LoadResult::LoadComplete; - } - return Data::AssetHandler::LoadResult::Error; - } - - /////////////////////////////////////////////////////////////////////// - - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAssetCreator.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAssetCreator.cpp index 2e2be18e0a..40daff8c8a 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAssetCreator.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAssetCreator.cpp @@ -45,26 +45,6 @@ namespace AZ } } - void ShaderAssetCreator::AddShaderResourceGroupAsset(const Data::Asset& shaderResourceGroupAsset) - { - if (!shaderResourceGroupAsset) - { - ReportError("ShaderResourceGroupAsset '%s' is not loaded.", shaderResourceGroupAsset.GetId().ToString().c_str()); - return; - } - - if (ValidateIsReady()) - { - auto& shaderResourceGroupAssets = m_asset->m_shaderResourceGroupAssets; - - const auto findIt = AZStd::find(shaderResourceGroupAssets.begin(), shaderResourceGroupAssets.end(), shaderResourceGroupAsset); - if (findIt == shaderResourceGroupAssets.end()) - { - shaderResourceGroupAssets.push_back(shaderResourceGroupAsset); - } - } - } - void ShaderAssetCreator::SetShaderOptionGroupLayout(const Ptr& shaderOptionGroupLayout) { if (ValidateIsReady()) @@ -84,28 +64,177 @@ namespace AZ } } - void ShaderAssetCreator::SetRootShaderVariantAsset(Data::Asset shaderVariantAsset) + void ShaderAssetCreator::BeginSupervariant(const Name& name) { - if (ValidateIsReady()) + if (!ValidateIsReady()) { - m_asset->GetCurrentShaderApiData().m_rootShaderVariantAsset = shaderVariantAsset; + return; + } + + if (m_currentSupervariant) + { + ReportError("Call EndSupervariant() before calling BeginSupervariant again."); + return; + } + + if (m_asset->m_currentAPITypeIndex == ShaderAsset::InvalidAPITypeIndex) + { + ReportError("Can not begin supervariant with name [%s] because this function must be called between BeginAPI()/EndAPI()", name.GetCStr()); + return; + } + + if (m_asset->m_perAPIShaderData.empty()) + { + ReportError("Can not add supervariant with name [%s] because there's no per API shader data", name.GetCStr()); + return; + } + + ShaderAsset::ShaderApiDataContainer& perAPIShaderData = m_asset->m_perAPIShaderData[m_asset->m_perAPIShaderData.size() - 1]; + if (perAPIShaderData.m_supervariants.empty()) + { + if (!name.IsEmpty()) + { + ReportError("The first supervariant must be nameless. Name [%s] is invalid", name.GetCStr()); + return; + } + } + else + { + if (name.IsEmpty()) + { + ReportError( + "Only the first supervariant can be nameless. So far there are %zu supervariants", + perAPIShaderData.m_supervariants.size()); + return; + } + } + + perAPIShaderData.m_supervariants.push_back({}); + m_currentSupervariant = &perAPIShaderData.m_supervariants[perAPIShaderData.m_supervariants.size() - 1]; + m_currentSupervariant->m_name = name; + } + + void ShaderAssetCreator::SetSrgLayoutList(const ShaderResourceGroupLayoutList& srgLayoutList) + { + if (!ValidateIsReady()) + { + return; + } + + if (!m_currentSupervariant) + { + ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); + return; + } + + m_currentSupervariant->m_srgLayoutList = srgLayoutList; + for (auto srgLayout : m_currentSupervariant->m_srgLayoutList) + { + if (!srgLayout->Finalize()) + { + ReportError( + "The current supervariant [%s], failed to finalize SRG Layout [%s]", m_currentSupervariant->m_name.GetCStr(), + srgLayout->GetName().GetCStr()); + return; + } } } + //! [Required] Assigns the pipeline layout descriptor shared by all variants in the shader. Shader variants + //! embedded in a single shader asset are required to use the same pipeline layout. It is not necessary to call + //! Finalize() on the pipeline layout prior to assignment, but still permitted. + void ShaderAssetCreator::SetPipelineLayout(RHI::Ptr pipelineLayoutDescriptor) + { + if (!ValidateIsReady()) + { + return; + } + if (!m_currentSupervariant) + { + ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); + return; + } + m_currentSupervariant->m_pipelineLayoutDescriptor = pipelineLayoutDescriptor; + } + + //! Assigns the contract for inputs required by the shader. + void ShaderAssetCreator::SetInputContract(const ShaderInputContract& contract) + { + if (!ValidateIsReady()) + { + return; + } + if (!m_currentSupervariant) + { + ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); + return; + } + m_currentSupervariant->m_inputContract = contract; + } + + //! Assigns the contract for outputs required by the shader. + void ShaderAssetCreator::SetOutputContract(const ShaderOutputContract& contract) + { + if (!ValidateIsReady()) + { + return; + } + if (!m_currentSupervariant) + { + ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); + return; + } + m_currentSupervariant->m_outputContract = contract; + } + + //! Assigns the render states for the draw pipeline. Ignored for non-draw pipelines. + void ShaderAssetCreator::SetRenderStates(const RHI::RenderStates& renderStates) + { + if (!ValidateIsReady()) + { + return; + } + if (!m_currentSupervariant) + { + ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); + return; + } + m_currentSupervariant->m_renderStates = renderStates; + } + + //! [Optional] Not all shaders have attributes before functions. Some attributes do not exist for all RHI::APIType either. void ShaderAssetCreator::SetShaderStageAttributeMapList(const RHI::ShaderStageAttributeMapList& shaderStageAttributeMapList) { - if (ValidateIsReady()) + if (!ValidateIsReady()) { - m_asset->GetCurrentShaderApiData().m_attributeMaps = shaderStageAttributeMapList; + return; } + if (!m_currentSupervariant) + { + ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); + return; + } + m_currentSupervariant->m_attributeMaps = shaderStageAttributeMapList; } - void ShaderAssetCreator::SetPipelineLayout(const Ptr& pipelineLayoutDescriptor) + //! [Required] There's always a root variant for each supervariant. + void ShaderAssetCreator::SetRootShaderVariantAsset(Data::Asset shaderVariantAsset) { - if (ValidateIsReady()) + if (!ValidateIsReady()) { - m_asset->GetCurrentShaderApiData().m_pipelineLayoutDescriptor = pipelineLayoutDescriptor; + return; } + if (!m_currentSupervariant) + { + ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); + return; + } + if (!shaderVariantAsset) + { + ReportError("Invalid root variant"); + return; + } + m_currentSupervariant->m_rootShaderVariantAsset = shaderVariantAsset; } static RHI::PipelineStateType GetPipelineStateType(const Data::Asset& shaderVariantAsset) @@ -127,65 +256,40 @@ namespace AZ return RHI::PipelineStateType::RayTracing; } - // For practical purposes We should never get to this point because a Data::Asset is always validated. - AZ_Assert(false, "Invalid Shader Variant Asset. Couldn't deduce the pipeline state type."); return RHI::PipelineStateType::Count; } - bool ShaderAssetCreator::EndAPI() + bool ShaderAssetCreator::EndSupervariant() { if (!ValidateIsReady()) { return false; } - // Shared resources by all RHI API versions - auto shaderOptionGroupLayout = m_asset->m_shaderOptionGroupLayout; - auto& shaderResourceGroupAssets = m_asset->m_shaderResourceGroupAssets; - - // RHI API specific resources - auto& pipelineLayoutDescriptor = m_asset->GetCurrentShaderApiData().m_pipelineLayoutDescriptor; - auto& rootShaderVariantAsset = m_asset->GetCurrentShaderApiData().m_rootShaderVariantAsset; - if (!rootShaderVariantAsset) + if (!m_currentSupervariant) { - ReportError("Invalid root variant"); + ReportError("Can not end a supervariant that has not started"); return false; } - if (pipelineLayoutDescriptor) + if (!m_currentSupervariant->m_rootShaderVariantAsset.IsReady()) { - if (!pipelineLayoutDescriptor->IsFinalized()) + ReportError( + "The current supervariant [%s], is missing the root ShaderVariantAsset", m_currentSupervariant->m_name.GetCStr()); + return false; + } + + // Supervariant specific resources + if (m_currentSupervariant->m_pipelineLayoutDescriptor) + { + if (!m_currentSupervariant->m_pipelineLayoutDescriptor->IsFinalized()) { - if (pipelineLayoutDescriptor->Finalize() != RHI::ResultCode::Success) + if (m_currentSupervariant->m_pipelineLayoutDescriptor->Finalize() != RHI::ResultCode::Success) { ReportError("Failed to finalize pipeline layout descriptor."); return false; } } - - // Validate that the SRG layouts match between the local SRG assets and the pipeline layout. - - if (pipelineLayoutDescriptor->GetShaderResourceGroupLayoutCount() != shaderResourceGroupAssets.size()) - { - ReportError( - "Number of shader resource group layouts specified in pipeline layout does not match the " - "number of shader resource group assets added to ShaderAssetCreator."); - return false; - } - - for (size_t i = 0; i < shaderResourceGroupAssets.size(); ++i) - { - const RHI::ShaderResourceGroupLayout* layoutForAsset = shaderResourceGroupAssets[i]->GetLayout(m_asset->GetCurrentShaderApiData().m_APIType); - const RHI::ShaderResourceGroupLayout* layoutForPipeline = pipelineLayoutDescriptor->GetShaderResourceGroupLayout(i); - - if (layoutForAsset->GetHash() != layoutForPipeline->GetHash()) - { - ReportError( - "ShaderResourceGroupAsset '%s' at index '%d' does not match ShaderResourceGroupLayout specified in PipelineLayoutDescriptor", - shaderResourceGroupAssets[i]->GetName().GetCStr(), i); - return false; - } - } } else { @@ -193,13 +297,66 @@ namespace AZ return false; } - if (!shaderOptionGroupLayout) + const ShaderInputContract& shaderInputContract = m_currentSupervariant->m_inputContract; + // Validate that each stream ID appears only once. + for (const auto& channel : shaderInputContract.m_streamChannels) { - ReportError("ShaderOptionGroupLayout not specified."); + int count = 0; + + for (const auto& searchChannel : shaderInputContract.m_streamChannels) + { + if (channel.m_semantic == searchChannel.m_semantic) + { + ++count; + } + } + + if (count > 1) + { + ReportError( + "Input stream channel [%s] appears multiple times. For supervariant with name [%s]", + channel.m_semantic.ToString().c_str(), m_currentSupervariant->m_name.GetCStr()); + return false; + } + } + + auto pipelineStateType = GetPipelineStateType(m_currentSupervariant->m_rootShaderVariantAsset); + if (pipelineStateType == RHI::PipelineStateType::Count) + { + ReportError("Invalid pipelineStateType for supervariant [%s]", m_currentSupervariant->m_name.GetCStr()); return false; } - m_asset->m_pipelineStateType = GetPipelineStateType(rootShaderVariantAsset); + + if (m_currentSupervariant->m_name.IsEmpty()) + { + m_asset->m_pipelineStateType = pipelineStateType; + } + else + { + if (m_asset->m_pipelineStateType != pipelineStateType) + { + ReportError("All supervariants must be of the same pipelineStateType. Current pipelineStateType is [%d], but for supervariant [%s] the pipelineStateType is [%d]", + m_asset->m_pipelineStateType, m_currentSupervariant->m_name.GetCStr(), pipelineStateType); + return false; + } + } + + m_currentSupervariant = nullptr; + return true; + } + + bool ShaderAssetCreator::EndAPI() + { + if (!ValidateIsReady()) + { + return false; + } + if (m_currentSupervariant) + { + ReportError("EndSupervariant() must be called before calling EndAPI()"); + return false; + } m_asset->m_currentAPITypeIndex = ShaderAsset::InvalidAPITypeIndex; return true; @@ -229,27 +386,18 @@ namespace AZ return EndCommon(shaderAsset); } - void ShaderAssetCreator::Clone(const Data::AssetId& assetId, - const ShaderAsset* sourceShaderAsset, - const ShaderResourceGroupAssets& srgAssets, - const ShaderRootVariantAssets& rootVariantAssets) + void ShaderAssetCreator::Clone(const Data::AssetId& assetId, const ShaderAsset& sourceShaderAsset, [[maybe_unused]] const ShaderRootVariantAssets& rootVariantAssets) { BeginCommon(assetId); - m_asset->m_name = sourceShaderAsset->m_name; - m_asset->m_pipelineStateType = sourceShaderAsset->m_pipelineStateType; - - // copy Srg assets - AZ_Assert(srgAssets.size() == sourceShaderAsset->m_shaderResourceGroupAssets.size(), "incorrect number of Srg assets passed to Clone()"); - for (const auto& srgAsset : srgAssets) - { - m_asset->m_shaderResourceGroupAssets.push_back(srgAsset); - } - - m_asset->m_shaderOptionGroupLayout = sourceShaderAsset->m_shaderOptionGroupLayout; + m_asset->m_name = sourceShaderAsset.m_name; + m_asset->m_pipelineStateType = sourceShaderAsset.m_pipelineStateType; + m_asset->m_drawListName = sourceShaderAsset.m_drawListName; + m_asset->m_shaderOptionGroupLayout = sourceShaderAsset.m_shaderOptionGroupLayout; + m_asset->m_shaderAssetBuildTimestamp = sourceShaderAsset.m_shaderAssetBuildTimestamp; // copy root variant assets - for (auto& perAPIShaderData : sourceShaderAsset->m_perAPIShaderData) + for (auto& perAPIShaderData : sourceShaderAsset.m_perAPIShaderData) { // find the matching ShaderVariantAsset AZ::Data::Asset foundVariantAsset; @@ -261,17 +409,25 @@ namespace AZ break; } } - + if (!foundVariantAsset) { ReportWarning("Failed to find variant asset for API [%d]", perAPIShaderData.m_APIType); } - + m_asset->m_perAPIShaderData.push_back(perAPIShaderData); - m_asset->m_perAPIShaderData.back().m_rootShaderVariantAsset = foundVariantAsset; + if (m_asset->m_perAPIShaderData.back().m_supervariants.empty()) + { + ReportWarning("Attempting to clone a shader asset that has no supervariants for API [%d]", perAPIShaderData.m_APIType); + } + else + { + // currently we only support one supervariant when cloning + // [GFX TODO][ATOM-15740] Support multiple supervariants in ShaderAssetCreator::Clone + m_asset->m_perAPIShaderData.back().m_supervariants[0].m_rootShaderVariantAsset = foundVariantAsset; + } } - m_asset->m_drawListName = sourceShaderAsset->m_drawListName; } } // namespace RPI } // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAssetCreator2.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAssetCreator2.cpp deleted file mode 100644 index af8340a343..0000000000 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderAssetCreator2.cpp +++ /dev/null @@ -1,404 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#include - -namespace AZ -{ - namespace RPI - { - void ShaderAssetCreator2::Begin(const Data::AssetId& assetId) - { - BeginCommon(assetId); - } - - void ShaderAssetCreator2::SetShaderAssetBuildTimestamp(AZStd::sys_time_t shaderAssetBuildTimestamp) - { - if (ValidateIsReady()) - { - m_asset->m_shaderAssetBuildTimestamp = shaderAssetBuildTimestamp; - } - } - - void ShaderAssetCreator2::SetName(const Name& name) - { - if (ValidateIsReady()) - { - m_asset->m_name = name; - } - } - - void ShaderAssetCreator2::SetDrawListName(const Name& name) - { - if (ValidateIsReady()) - { - m_asset->m_drawListName = name; - } - } - - void ShaderAssetCreator2::SetShaderOptionGroupLayout(const Ptr& shaderOptionGroupLayout) - { - if (ValidateIsReady()) - { - m_asset->m_shaderOptionGroupLayout = shaderOptionGroupLayout; - } - } - - void ShaderAssetCreator2::BeginAPI(RHI::APIType type) - { - if (ValidateIsReady()) - { - ShaderAsset2::ShaderApiDataContainer shaderData; - shaderData.m_APIType = type; - m_asset->m_currentAPITypeIndex = m_asset->m_perAPIShaderData.size(); - m_asset->m_perAPIShaderData.push_back(shaderData); - } - } - - void ShaderAssetCreator2::BeginSupervariant(const Name& name) - { - if (!ValidateIsReady()) - { - return; - } - - if (m_currentSupervariant) - { - ReportError("Call EndSupervariant() before calling BeginSupervariant again."); - return; - } - - if (m_asset->m_currentAPITypeIndex == ShaderAsset2::InvalidAPITypeIndex) - { - ReportError("Can not begin supervariant with name [%s] because this function must be called between BeginAPI()/EndAPI()", name.GetCStr()); - return; - } - - if (m_asset->m_perAPIShaderData.empty()) - { - ReportError("Can not add supervariant with name [%s] because there's no per API shader data", name.GetCStr()); - return; - } - - ShaderAsset2::ShaderApiDataContainer& perAPIShaderData = m_asset->m_perAPIShaderData[m_asset->m_perAPIShaderData.size() - 1]; - if (perAPIShaderData.m_supervariants.empty()) - { - if (!name.IsEmpty()) - { - ReportError("The first supervariant must be nameless. Name [%s] is invalid", name.GetCStr()); - return; - } - } - else - { - if (name.IsEmpty()) - { - ReportError( - "Only the first supervariant can be nameless. So far there are %zu supervariants", - perAPIShaderData.m_supervariants.size()); - return; - } - } - - perAPIShaderData.m_supervariants.push_back({}); - m_currentSupervariant = &perAPIShaderData.m_supervariants[perAPIShaderData.m_supervariants.size() - 1]; - m_currentSupervariant->m_name = name; - } - - void ShaderAssetCreator2::SetSrgLayoutList(const ShaderResourceGroupLayoutList& srgLayoutList) - { - if (!ValidateIsReady()) - { - return; - } - - if (!m_currentSupervariant) - { - ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); - return; - } - - m_currentSupervariant->m_srgLayoutList = srgLayoutList; - for (auto srgLayout : m_currentSupervariant->m_srgLayoutList) - { - if (!srgLayout->Finalize()) - { - ReportError( - "The current supervariant [%s], failed to finalize SRG Layout [%s]", m_currentSupervariant->m_name.GetCStr(), - srgLayout->GetName().GetCStr()); - return; - } - } - } - - //! [Required] Assigns the pipeline layout descriptor shared by all variants in the shader. Shader variants - //! embedded in a single shader asset are required to use the same pipeline layout. It is not necessary to call - //! Finalize() on the pipeline layout prior to assignment, but still permitted. - void ShaderAssetCreator2::SetPipelineLayout(RHI::Ptr pipelineLayoutDescriptor) - { - if (!ValidateIsReady()) - { - return; - } - if (!m_currentSupervariant) - { - ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); - return; - } - if (m_currentSupervariant->m_srgLayoutList.empty()) - { - ReportError( - "Before setting the pipeline layout, the supervariant [%s] needs the SRG layouts", - m_currentSupervariant->m_name.GetCStr()); - return; - } - m_currentSupervariant->m_pipelineLayoutDescriptor = pipelineLayoutDescriptor; - } - - //! Assigns the contract for inputs required by the shader. - void ShaderAssetCreator2::SetInputContract(const ShaderInputContract& contract) - { - if (!ValidateIsReady()) - { - return; - } - if (!m_currentSupervariant) - { - ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); - return; - } - m_currentSupervariant->m_inputContract = contract; - } - - //! Assigns the contract for outputs required by the shader. - void ShaderAssetCreator2::SetOutputContract(const ShaderOutputContract& contract) - { - if (!ValidateIsReady()) - { - return; - } - if (!m_currentSupervariant) - { - ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); - return; - } - m_currentSupervariant->m_outputContract = contract; - } - - //! Assigns the render states for the draw pipeline. Ignored for non-draw pipelines. - void ShaderAssetCreator2::SetRenderStates(const RHI::RenderStates& renderStates) - { - if (!ValidateIsReady()) - { - return; - } - if (!m_currentSupervariant) - { - ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); - return; - } - m_currentSupervariant->m_renderStates = renderStates; - } - - //! [Optional] Not all shaders have attributes before functions. Some attributes do not exist for all RHI::APIType either. - void ShaderAssetCreator2::SetShaderStageAttributeMapList(const RHI::ShaderStageAttributeMapList& shaderStageAttributeMapList) - { - if (!ValidateIsReady()) - { - return; - } - if (!m_currentSupervariant) - { - ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); - return; - } - m_currentSupervariant->m_attributeMaps = shaderStageAttributeMapList; - } - - //! [Required] There's always a root variant for each supervariant. - void ShaderAssetCreator2::SetRootShaderVariantAsset(Data::Asset shaderVariantAsset) - { - if (!ValidateIsReady()) - { - return; - } - if (!m_currentSupervariant) - { - ReportError("BeginSupervariant() should be called first before calling %s", __FUNCTION__); - return; - } - m_currentSupervariant->m_rootShaderVariantAsset = shaderVariantAsset; - } - - static RHI::PipelineStateType GetPipelineStateType(const Data::Asset& shaderVariantAsset) - { - if (shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Vertex) || - shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Tessellation) || - shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Fragment)) - { - return RHI::PipelineStateType::Draw; - } - - if (shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::Compute)) - { - return RHI::PipelineStateType::Dispatch; - } - - if (shaderVariantAsset->GetShaderStageFunction(RHI::ShaderStage::RayTracing)) - { - return RHI::PipelineStateType::RayTracing; - } - - return RHI::PipelineStateType::Count; - } - - bool ShaderAssetCreator2::EndSupervariant() - { - if (!ValidateIsReady()) - { - return false; - } - - if (!m_currentSupervariant) - { - ReportError("Can not end a supervariant that has not started"); - return false; - } - - if (!m_currentSupervariant->m_rootShaderVariantAsset.IsReady()) - { - ReportError( - "The current supervariant [%s], is missing the root ShaderVariantAsset", m_currentSupervariant->m_name.GetCStr()); - return false; - } - - // Supervariant specific resources - if (m_currentSupervariant->m_pipelineLayoutDescriptor) - { - if (!m_currentSupervariant->m_pipelineLayoutDescriptor->IsFinalized()) - { - if (m_currentSupervariant->m_pipelineLayoutDescriptor->Finalize() != RHI::ResultCode::Success) - { - ReportError("Failed to finalize pipeline layout descriptor."); - return false; - } - } - } - else - { - ReportError("PipelineLayoutDescriptor not specified."); - return false; - } - - const ShaderInputContract& shaderInputContract = m_currentSupervariant->m_inputContract; - // Validate that each stream ID appears only once. - for (const auto& channel : shaderInputContract.m_streamChannels) - { - int count = 0; - - for (const auto& searchChannel : shaderInputContract.m_streamChannels) - { - if (channel.m_semantic == searchChannel.m_semantic) - { - ++count; - } - } - - if (count > 1) - { - ReportError( - "Input stream channel [%s] appears multiple times. For supervariant with name [%s]", - channel.m_semantic.ToString().c_str(), m_currentSupervariant->m_name.GetCStr()); - return false; - } - } - - auto pipelineStateType = GetPipelineStateType(m_currentSupervariant->m_rootShaderVariantAsset); - if (pipelineStateType == RHI::PipelineStateType::Count) - { - ReportError("Invalid pipelineStateType for supervariant [%s]", m_currentSupervariant->m_name.GetCStr()); - return false; - } - - - if (m_currentSupervariant->m_name.IsEmpty()) - { - m_asset->m_pipelineStateType = pipelineStateType; - } - else - { - if (m_asset->m_pipelineStateType != pipelineStateType) - { - ReportError("All supervariants must be of the same pipelineStateType. Current pipelineStateType is [%d], but for supervariant [%s] the pipelineStateType is [%d]", - m_asset->m_pipelineStateType, m_currentSupervariant->m_name.GetCStr(), pipelineStateType); - return false; - } - } - - m_currentSupervariant = nullptr; - return true; - } - - bool ShaderAssetCreator2::EndAPI() - { - if (!ValidateIsReady()) - { - return false; - } - if (m_currentSupervariant) - { - ReportError("EndSupervariant() must be called before calling EndAPI()"); - return false; - } - - m_asset->m_currentAPITypeIndex = ShaderAsset2::InvalidAPITypeIndex; - return true; - } - - bool ShaderAssetCreator2::End(Data::Asset& shaderAsset) - { - if (!ValidateIsReady()) - { - return false; - } - - if (m_asset->m_perAPIShaderData.empty()) - { - ReportError("Empty shader data. Check that a valid RHI is enabled for this platform."); - return false; - } - - if (!m_asset->FinalizeAfterLoad()) - { - ReportError("Failed to finalize the ShaderAsset2."); - return false; - } - - m_asset->SetReady(); - - return EndCommon(shaderAsset); - } - - void ShaderAssetCreator2::Clone(const Data::AssetId& assetId, const ShaderAsset2& sourceShaderAsset) - { - BeginCommon(assetId); - - m_asset->m_name = sourceShaderAsset.m_name; - m_asset->m_pipelineStateType = sourceShaderAsset.m_pipelineStateType; - m_asset->m_drawListName = sourceShaderAsset.m_drawListName; - m_asset->m_shaderOptionGroupLayout = sourceShaderAsset.m_shaderOptionGroupLayout; - m_asset->m_shaderAssetBuildTimestamp = sourceShaderAsset.m_shaderAssetBuildTimestamp; - m_asset->m_perAPIShaderData = sourceShaderAsset.m_perAPIShaderData; - - } - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderResourceGroupAsset.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderResourceGroupAsset.cpp deleted file mode 100644 index d8f8c7d1ce..0000000000 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderResourceGroupAsset.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#include -#include -#include - -namespace AZ -{ - namespace RPI - { - const char* ShaderResourceGroupAsset::DisplayName = "ShaderResourceGroup"; - const char* ShaderResourceGroupAsset::Group = ""; - const char* ShaderResourceGroupAsset::Extension = ".azsrg"; - - void ShaderResourceGroupAsset::Reflect(ReflectContext* context) - { - if (auto* serializeContext = azrtti_cast(context)) - { - serializeContext->Class() - ->Version(0) - ->Field("m_name", &ShaderResourceGroupAsset::m_name) - ->Field("m_perAPILayout", &ShaderResourceGroupAsset::m_perAPILayout) - ; - } - } - - const Name& ShaderResourceGroupAsset::GetName() const - { - return m_name; - } - - const RHI::ShaderResourceGroupLayout* ShaderResourceGroupAsset::GetLayout() const - { - AZ_Error("RHI::ShaderResourceGroupLayout", m_currentAPITypeIndex < m_perAPILayout.size(), "Invalid API Type index"); - if (m_currentAPITypeIndex >= m_perAPILayout.size()) - { - return nullptr; - } - return m_perAPILayout[m_currentAPITypeIndex].second.get(); - } - - const RHI::ShaderResourceGroupLayout * ShaderResourceGroupAsset::GetLayout(const RHI::APIType type) const - { - size_t index = FindAPITypeIndex(type); - AZ_Assert(index < m_perAPILayout.size(), "Invalid API Type index"); - return m_perAPILayout[index].second.get(); - } - - bool ShaderResourceGroupAsset::IsValid() const - { - return !m_perAPILayout.empty() && !m_name.IsEmpty(); - } - - void ShaderResourceGroupAsset::SetReady() - { - m_status = AssetStatus::Ready; - } - - bool ShaderResourceGroupAsset::FinalizeAfterLoad() - { - if (RHI::Factory::IsReady()) - { - auto rhiType = RHI::Factory::Get().GetType(); - m_currentAPITypeIndex = FindAPITypeIndex(rhiType); - if (m_currentAPITypeIndex >= m_perAPILayout.size()) - { - AZ_Assert(false, "Could not find shader resource group layout for API %s", RHI::Factory::Get().GetName().GetCStr()); - return false; - } - } - else - { - m_currentAPITypeIndex = 0; - } - - return true; - } - - size_t ShaderResourceGroupAsset::FindAPITypeIndex(RHI::APIType type) const - { - auto findIt = AZStd::find_if(m_perAPILayout.begin(), m_perAPILayout.end(), [&type](const auto& shaderResourceGroupLayoutData) - { - return shaderResourceGroupLayoutData.first == type; - }); - - return findIt != m_perAPILayout.end() ? AZStd::distance(m_perAPILayout.begin(), findIt) : InvalidAPITypeIndex; - } - - Data::AssetHandler::LoadResult ShaderResourceGroupAssetHandler::LoadAssetData( - const Data::Asset& asset, - AZStd::shared_ptr stream, - const Data::AssetFilterCB& assetLoadFilterCB) - { - if (Base::LoadAssetData(asset, stream, assetLoadFilterCB) == Data::AssetHandler::LoadResult::LoadComplete) - { - return PostLoadInit(asset); - } - return Data::AssetHandler::LoadResult::Error; - } - - Data::AssetHandler::LoadResult ShaderResourceGroupAssetHandler::PostLoadInit(const Data::Asset& asset) - { - if (ShaderResourceGroupAsset* shaderAsset = asset.GetAs()) - { - if (!shaderAsset->FinalizeAfterLoad()) - { - AZ_Error("ShaderAssetHandler", false, "Shader asset failed to finalize."); - return Data::AssetHandler::LoadResult::Error; - } - return Data::AssetHandler::LoadResult::LoadComplete; - } - return Data::AssetHandler::LoadResult::Error; - } - - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.cpp deleted file mode 100644 index 7791881ec0..0000000000 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.cpp +++ /dev/null @@ -1,169 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#include -#include - -namespace AZ -{ - namespace RPI - { - ////////////////////////////////////////////////////////////////////////////////////////// - //// ShaderResourceGroupAssetCreator - - void ShaderResourceGroupAssetCreator::Begin(const AZ::Data::AssetId& assetId, const Name& shaderResourceGroupName) - { - BeginCommon(assetId); - - if (ValidateIsReady()) - { - m_asset->m_name = shaderResourceGroupName; - } - } - - void ShaderResourceGroupAssetCreator::BeginAPI(RHI::APIType type) - { - if (ValidateIsReady()) - { - m_currentAPIType = type; - m_shaderResourceGroupLayout = RHI::ShaderResourceGroupLayout::Create(); - } - } - - void ShaderResourceGroupAssetCreator::SetBindingSlot(uint32_t bindingSlot) - { - if (ValidateIsReady()) - { - m_shaderResourceGroupLayout->SetBindingSlot(bindingSlot); - } - } - - void ShaderResourceGroupAssetCreator::SetShaderVariantKeyFallback(const Name& shaderInputName, uint32_t bitSize) - { - if (ValidateIsReady()) - { - m_shaderResourceGroupLayout->SetShaderVariantKeyFallback(shaderInputName, bitSize); - } - } - - - void ShaderResourceGroupAssetCreator::AddStaticSampler(const RHI::ShaderInputStaticSamplerDescriptor& shaderInputStaticSampler) - { - if (ValidateIsReady()) - { - m_shaderResourceGroupLayout->AddStaticSampler(shaderInputStaticSampler); - } - } - - void ShaderResourceGroupAssetCreator::AddShaderInput(const RHI::ShaderInputBufferDescriptor& shaderInputBuffer) - { - if (ValidateIsReady()) - { - m_shaderResourceGroupLayout->AddShaderInput(shaderInputBuffer); - } - } - - void ShaderResourceGroupAssetCreator::AddShaderInput(const RHI::ShaderInputImageDescriptor& shaderInputImage) - { - if (ValidateIsReady()) - { - m_shaderResourceGroupLayout->AddShaderInput(shaderInputImage); - } - } - - void ShaderResourceGroupAssetCreator::AddShaderInput(const RHI::ShaderInputBufferUnboundedArrayDescriptor& shaderInputBufferUnboundedArray) - { - if (ValidateIsReady()) - { - m_shaderResourceGroupLayout->AddShaderInput(shaderInputBufferUnboundedArray); - } - } - - void ShaderResourceGroupAssetCreator::AddShaderInput(const RHI::ShaderInputImageUnboundedArrayDescriptor& shaderInputImageUnboundedArray) - { - if (ValidateIsReady()) - { - m_shaderResourceGroupLayout->AddShaderInput(shaderInputImageUnboundedArray); - } - } - - void ShaderResourceGroupAssetCreator::AddShaderInput(const RHI::ShaderInputSamplerDescriptor& shaderInputSampler) - { - if (ValidateIsReady()) - { - m_shaderResourceGroupLayout->AddShaderInput(shaderInputSampler); - } - } - - void ShaderResourceGroupAssetCreator::AddShaderInput(const RHI::ShaderInputConstantDescriptor& shaderInputConstant) - { - if (ValidateIsReady()) - { - m_shaderResourceGroupLayout->AddShaderInput(shaderInputConstant); - } - } - - void ShaderResourceGroupAssetCreator::Cleanup() - { - m_shaderResourceGroupLayout = nullptr; - m_currentAPIType = RHI::APIType(); - } - - bool ShaderResourceGroupAssetCreator::End(Data::Asset& result) - { - if (!ValidateIsReady()) - { - return false; - } - - if (m_shaderResourceGroupLayout) - { - AZ_Assert(false, "Must EndAPI before ending calling End"); - return false; - } - - if (m_asset->m_perAPILayout.empty()) - { - AZ_Assert(false, "No Shader Resource Group Layout was added."); - return false; - } - - if (!m_asset->FinalizeAfterLoad()) - { - ReportError("Failed to finalize the ShaderResourceGroupAsset."); - return false; - } - - m_asset->SetReady(); - return EndCommon(result); - } - - bool ShaderResourceGroupAssetCreator::EndAPI() - { - if (!ValidateIsReady()) - { - return false; - } - - if (!m_shaderResourceGroupLayout->Finalize()) - { - return false; - } - - m_asset->m_perAPILayout.push_back({ m_currentAPIType, AZStd::move(m_shaderResourceGroupLayout) }); - - Cleanup(); - - return true; - } - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderVariantAsset.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderVariantAsset.cpp index 5bcdcbb569..f4b0f75152 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderVariantAsset.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderVariantAsset.cpp @@ -16,17 +16,19 @@ #include #include +#include #include +#include namespace AZ { namespace RPI { uint32_t ShaderVariantAsset::MakeAssetProductSubId( - uint32_t rhiApiUniqueIndex, ShaderVariantStableId variantStableId, uint32_t subProductType) + uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, ShaderVariantStableId variantStableId, uint32_t subProductType) { static constexpr uint32_t SubProductTypeBitPosition = 17; - static constexpr uint32_t SubProductTypeNumBits = RhiIndexBitPosition - SubProductTypeBitPosition; + static constexpr uint32_t SubProductTypeNumBits = SupervariantIndexBitPosition - SubProductTypeBitPosition; static constexpr uint32_t SubProductTypeMaxValue = (1 << SubProductTypeNumBits) - 1; static constexpr uint32_t StableIdBitPosition = 0; @@ -37,11 +39,12 @@ namespace AZ // The 2 Most significant bits encode the the RHI::API unique index. AZ_Assert(rhiApiUniqueIndex <= RhiIndexMaxValue, "Invalid rhiApiUniqueIndex [%u]", rhiApiUniqueIndex); + AZ_Assert(supervariantIndex <= SupervariantIndexMaxValue, "Invalid supervariantIndex [%u]", supervariantIndex); AZ_Assert(subProductType <= SubProductTypeMaxValue, "Invalid subProductType [%u]", subProductType); AZ_Assert(variantStableId.GetIndex() <= StableIdMaxValue, "Invalid variantStableId [%u]", variantStableId.GetIndex()); const uint32_t assetProductSubId = (rhiApiUniqueIndex << RhiIndexBitPosition) | - (subProductType << SubProductTypeBitPosition) | + (supervariantIndex << SupervariantIndexBitPosition) | (subProductType << SubProductTypeBitPosition) | (variantStableId.GetIndex() << StableIdBitPosition); return assetProductSubId; } @@ -51,22 +54,19 @@ namespace AZ if (auto* serializeContext = azrtti_cast(context)) { serializeContext->Class() - ->Version(3) + ->Version(1) ->Field("StableId", &ShaderVariantAsset::m_stableId) ->Field("ShaderVariantId", &ShaderVariantAsset::m_shaderVariantId) ->Field("IsFullyBaked", &ShaderVariantAsset::m_isFullyBaked) - ->Field("InputContract", &ShaderVariantAsset::m_inputContract) - ->Field("OutputContract", &ShaderVariantAsset::m_outputContract) - ->Field("RenderStates", &ShaderVariantAsset::m_renderStates) ->Field("FunctionsByStage", &ShaderVariantAsset::m_functionsByStage) - ->Field("shaderAssetBuildTimestamp", &ShaderVariantAsset::m_shaderAssetBuildTimestamp) + ->Field("BuildTimestamp", &ShaderVariantAsset::m_buildTimestamp) ; } } - AZStd::sys_time_t ShaderVariantAsset::GetShaderAssetBuildTimestamp() const + AZStd::sys_time_t ShaderVariantAsset::GetBuildTimestamp() const { - return m_shaderAssetBuildTimestamp; + return m_buildTimestamp; } const RHI::ShaderStageFunction* ShaderVariantAsset::GetShaderStageFunction(RHI::ShaderStage shaderStage) const @@ -74,21 +74,6 @@ namespace AZ return m_functionsByStage[static_cast(shaderStage)].get(); } - const ShaderInputContract& ShaderVariantAsset::GetInputContract() const - { - return m_inputContract; - } - - const ShaderOutputContract& ShaderVariantAsset::GetOutputContract() const - { - return m_outputContract; - } - - const RHI::RenderStates& ShaderVariantAsset::GetRenderStates() const - { - return m_renderStates; - } - bool ShaderVariantAsset::IsFullyBaked() const { return m_isFullyBaked; diff --git a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderVariantAsset2.cpp b/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderVariantAsset2.cpp deleted file mode 100644 index 34daff560a..0000000000 --- a/Gems/Atom/RPI/Code/Source/RPI.Reflect/Shader/ShaderVariantAsset2.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#include - -#include -#include -#include - -#include -#include -#include - -namespace AZ -{ - namespace RPI - { - uint32_t ShaderVariantAsset2::MakeAssetProductSubId( - uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, ShaderVariantStableId variantStableId, uint32_t subProductType) - { - static constexpr uint32_t SubProductTypeBitPosition = 17; - static constexpr uint32_t SubProductTypeNumBits = SupervariantIndexBitPosition - SubProductTypeBitPosition; - static constexpr uint32_t SubProductTypeMaxValue = (1 << SubProductTypeNumBits) - 1; - - static constexpr uint32_t StableIdBitPosition = 0; - static constexpr uint32_t StableIdNumBits = SubProductTypeBitPosition - StableIdBitPosition; - static constexpr uint32_t StableIdMaxValue = (1 << StableIdNumBits) - 1; - - static_assert(RhiIndexMaxValue == RHI::Limits::APIType::PerPlatformApiUniqueIndexMax); - - // The 2 Most significant bits encode the the RHI::API unique index. - AZ_Assert(rhiApiUniqueIndex <= RhiIndexMaxValue, "Invalid rhiApiUniqueIndex [%u]", rhiApiUniqueIndex); - AZ_Assert(supervariantIndex <= SupervariantIndexMaxValue, "Invalid supervariantIndex [%u]", supervariantIndex); - AZ_Assert(subProductType <= SubProductTypeMaxValue, "Invalid subProductType [%u]", subProductType); - AZ_Assert(variantStableId.GetIndex() <= StableIdMaxValue, "Invalid variantStableId [%u]", variantStableId.GetIndex()); - - const uint32_t assetProductSubId = (rhiApiUniqueIndex << RhiIndexBitPosition) | - (supervariantIndex << SupervariantIndexBitPosition) | (subProductType << SubProductTypeBitPosition) | - (variantStableId.GetIndex() << StableIdBitPosition); - return assetProductSubId; - } - - void ShaderVariantAsset2::Reflect(ReflectContext* context) - { - if (auto* serializeContext = azrtti_cast(context)) - { - serializeContext->Class() - ->Version(1) - ->Field("StableId", &ShaderVariantAsset2::m_stableId) - ->Field("ShaderVariantId", &ShaderVariantAsset2::m_shaderVariantId) - ->Field("IsFullyBaked", &ShaderVariantAsset2::m_isFullyBaked) - ->Field("FunctionsByStage", &ShaderVariantAsset2::m_functionsByStage) - ->Field("BuildTimestamp", &ShaderVariantAsset2::m_buildTimestamp) - ; - } - } - - AZStd::sys_time_t ShaderVariantAsset2::GetBuildTimestamp() const - { - return m_buildTimestamp; - } - - const RHI::ShaderStageFunction* ShaderVariantAsset2::GetShaderStageFunction(RHI::ShaderStage shaderStage) const - { - return m_functionsByStage[static_cast(shaderStage)].get(); - } - - bool ShaderVariantAsset2::IsFullyBaked() const - { - return m_isFullyBaked; - } - - void ShaderVariantAsset2::SetReady() - { - m_status = AssetStatus::Ready; - } - - bool ShaderVariantAsset2::FinalizeAfterLoad() - { - return true; - } - - ShaderVariantAssetHandler2::LoadResult ShaderVariantAssetHandler2::LoadAssetData(const Data::Asset& asset, AZStd::shared_ptr stream, const AZ::Data::AssetFilterCB& assetLoadFilterCB) - { - if (Base::LoadAssetData(asset, stream, assetLoadFilterCB) == LoadResult::LoadComplete) - { - return PostLoadInit(asset) ? LoadResult::LoadComplete : LoadResult::Error; - } - return LoadResult::Error; - } - - bool ShaderVariantAssetHandler2::PostLoadInit(const Data::Asset& asset) - { - if (ShaderVariantAsset2* shaderVariantAsset = asset.GetAs()) - { - if (!shaderVariantAsset->FinalizeAfterLoad()) - { - AZ_Error("ShaderVariantAssetHandler", false, "Shader asset failed to finalize."); - return false; - } - return true; - } - return false; - } - } // namespace RPI -} // namespace AZ diff --git a/Gems/Atom/RPI/Code/Tests/Common/RPITestFixture.cpp b/Gems/Atom/RPI/Code/Tests/Common/RPITestFixture.cpp index 2828d7eb39..2df31a0ad7 100644 --- a/Gems/Atom/RPI/Code/Tests/Common/RPITestFixture.cpp +++ b/Gems/Atom/RPI/Code/Tests/Common/RPITestFixture.cpp @@ -25,7 +25,6 @@ #include #include -#include #include #include @@ -150,9 +149,9 @@ namespace UnitTest return AZ::RHI::RHISystemInterface::Get()->GetDevice(); } - void RPITestFixture::ProcessQueuedSrgCompilations(Data::Asset srgAsset) + void RPITestFixture::ProcessQueuedSrgCompilations(Data::Asset shaderAsset, const AZ::Name& srgName) { - Data::Instance srgPool = ShaderResourceGroupPool::FindOrCreate(srgAsset); + Data::Instance srgPool = ShaderResourceGroupPool::FindOrCreate(shaderAsset, RPI::DefaultSupervariantIndex, srgName); srgPool->GetRHIPool()->CompileGroupsBegin(); srgPool->GetRHIPool()->CompileGroupsForInterval(RHI::Interval(0, srgPool->GetRHIPool()->GetGroupsToCompileCount())); srgPool->GetRHIPool()->CompileGroupsEnd(); diff --git a/Gems/Atom/RPI/Code/Tests/Common/RPITestFixture.h b/Gems/Atom/RPI/Code/Tests/Common/RPITestFixture.h index 1d344336ce..3884d8d387 100644 --- a/Gems/Atom/RPI/Code/Tests/Common/RPITestFixture.h +++ b/Gems/Atom/RPI/Code/Tests/Common/RPITestFixture.h @@ -14,7 +14,6 @@ #include -#include #include #include @@ -48,7 +47,7 @@ namespace UnitTest //! Performs processing that would normally be done by the frame scheduler, //! which has to happen in order to recompile the same SRG instance multiple times. - void ProcessQueuedSrgCompilations(AZ::Data::Asset srgAsset); + void ProcessQueuedSrgCompilations(AZ::Data::Asset shaderAsset, const AZ::Name& srgName); AZ::JsonRegistrationContext* GetJsonRegistrationContext() override; diff --git a/Gems/Atom/RPI/Code/Tests/Common/ShaderAssetTestUtils.cpp b/Gems/Atom/RPI/Code/Tests/Common/ShaderAssetTestUtils.cpp new file mode 100644 index 0000000000..e7ced6f487 --- /dev/null +++ b/Gems/Atom/RPI/Code/Tests/Common/ShaderAssetTestUtils.cpp @@ -0,0 +1,148 @@ +/* + * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or + * its licensors. + * + * For complete copyright and license terms please see the LICENSE at the root of this + * distribution (the "License"). All use of this software is governed by the License, + * or, if provided, by the license below or the license accompanying this file. Do not + * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + */ + +#include +#include +#include + +#include +#include + +#include + +#include "ShaderAssetTestUtils.h" + +namespace UnitTest +{ + template + void AddShaderInputToBindingInfo(AZ::RHI::ShaderResourceGroupBindingInfo& bindingInfo, const T& shaderInputs) + { + for (const auto& shaderInput : shaderInputs) + { + bindingInfo.m_resourcesRegisterMap.insert( + { shaderInput.m_name.GetStringView(), + AZ::RHI::ResourceBindingInfo{ AZ::RHI::ShaderStageMask::Vertex, shaderInput.m_registerId } }); + } + } + + static AZ::RHI::ShaderResourceGroupBindingInfo CreateShaderResourceGroupBindingInfo(const AZ::RHI::ShaderResourceGroupLayout* layout) + { + using namespace AZ; + + RHI::ShaderResourceGroupBindingInfo bindingInfo; + if (!layout) + { + return bindingInfo; + } + + if (layout->GetConstantDataSize()) + { + // All constant in the SRG use the same the register id. + bindingInfo.m_constantDataBindingInfo.m_registerId = layout->GetShaderInputListForConstants()[0].m_registerId; + } + + AddShaderInputToBindingInfo(bindingInfo, layout->GetShaderInputListForBuffers()); + AddShaderInputToBindingInfo(bindingInfo, layout->GetShaderInputListForSamplers()); + AddShaderInputToBindingInfo(bindingInfo, layout->GetShaderInputListForImages()); + AddShaderInputToBindingInfo(bindingInfo, layout->GetStaticSamplers()); + + return bindingInfo; + } + + static AZ::Data::Asset CreateTestShaderVariantAsset( + AZ::RPI::ShaderVariantId id, + AZ::RPI::ShaderVariantStableId stableId, + const AZStd::vector& stagesToActivate = { AZ::RHI::ShaderStage::Vertex, AZ::RHI::ShaderStage::Fragment }) + { + using namespace AZ; + RPI::ShaderVariantAssetCreator shaderVariantAssetCreator; + shaderVariantAssetCreator.Begin(Uuid::CreateRandom(), id, stableId, false); + shaderVariantAssetCreator.SetBuildTimestamp(AZStd::sys_time_t(1)); // Make non-zero. + + for (RHI::ShaderStage rhiStage : stagesToActivate) + { + RHI::Ptr shaderStageFunction = aznew StubRHI::ShaderStageFunction; + shaderVariantAssetCreator.SetShaderFunction(rhiStage, shaderStageFunction); + } + + Data::Asset shaderVariantAsset; + shaderVariantAssetCreator.End(shaderVariantAsset); + + return shaderVariantAsset; + } + + AZ::Data::Asset CreateTestShaderAsset( + const AZ::Data::AssetId& shaderAssetId, + AZ::RHI::Ptr optionalSrgLayout, + AZ::RPI::Ptr optionalShaderOptions, + const AZ::Name& shaderName, + const AZ::Name& drawListName) + { + using namespace AZ; + using namespace RPI; + using namespace RHI; + + Data::Asset shaderAsset; + + RHI::Ptr pipelineLayoutDescriptor = RHI::PipelineLayoutDescriptor::Create(); + if (optionalSrgLayout) + { + const RHI::ShaderResourceGroupLayout* layout = optionalSrgLayout.get(); + RHI::ShaderResourceGroupBindingInfo bindingInfo = CreateShaderResourceGroupBindingInfo(layout); + pipelineLayoutDescriptor->AddShaderResourceGroupLayoutInfo(*layout, bindingInfo); + } + pipelineLayoutDescriptor->Finalize(); + + if (!optionalShaderOptions) + { + optionalShaderOptions = RPI::ShaderOptionGroupLayout::Create(); + optionalShaderOptions->Finalize(); + } + + ShaderAssetCreator creator; + creator.Begin(shaderAssetId); + creator.SetName(shaderName); + creator.SetDrawListName(drawListName); + creator.SetDrawListName(drawListName); + creator.SetShaderOptionGroupLayout(optionalShaderOptions); + + creator.BeginAPI(RHI::Factory::Get().GetType()); + + creator.BeginSupervariant(AZ::Name{}); // The default (first) supervariant MUST be nameless. + + if (optionalSrgLayout) + { + creator.SetSrgLayoutList({ optionalSrgLayout }); + } + creator.SetPipelineLayout(pipelineLayoutDescriptor); + + //creator.SetRenderStates(m_renderStates); + //creator.SetInputContract(CreateSimpleShaderInputContract()); + //creator.SetOutputContract(CreateSimpleShaderOutputContract()); + + RHI::ShaderStageAttributeMapList attributeMaps; + attributeMaps.resize(RHI::ShaderStageCount); + creator.SetShaderStageAttributeMapList(attributeMaps); + + Data::Asset shaderVariantAsset = + CreateTestShaderVariantAsset(RPI::ShaderVariantId{}, RPI::ShaderVariantStableId{ 0 }); + + creator.SetRootShaderVariantAsset(shaderVariantAsset); + + creator.EndSupervariant(); + + creator.EndAPI(); + creator.End(shaderAsset); + + return shaderAsset; + } +} diff --git a/Gems/Atom/RPI/Code/Tests/Common/ShaderAssetTestUtils.h b/Gems/Atom/RPI/Code/Tests/Common/ShaderAssetTestUtils.h new file mode 100644 index 0000000000..8cb8a0c80d --- /dev/null +++ b/Gems/Atom/RPI/Code/Tests/Common/ShaderAssetTestUtils.h @@ -0,0 +1,28 @@ +/* + * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or + * its licensors. + * + * For complete copyright and license terms please see the LICENSE at the root of this + * distribution (the "License"). All use of this software is governed by the License, + * or, if provided, by the license below or the license accompanying this file. Do not + * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + */ + +#pragma once + +#include + +namespace UnitTest +{ + + //! Utility function for creating the simplest possible ShaderAsset + AZ::Data::Asset CreateTestShaderAsset( + const AZ::Data::AssetId& shaderAssetId, + AZ::RHI::Ptr optionalSrgLayout = nullptr, + AZ::RPI::Ptr optionalShaderOptions = nullptr, + const AZ::Name& shaderName = AZ::Name{ "TestShader" }, + const AZ::Name& drawListName = AZ::Name{ "depth" } ); + +} //namespace UnitTest diff --git a/Gems/Atom/RPI/Code/Tests/Image/StreamingImageTests.cpp b/Gems/Atom/RPI/Code/Tests/Image/StreamingImageTests.cpp index 4952769d89..4fc58bc91a 100644 --- a/Gems/Atom/RPI/Code/Tests/Image/StreamingImageTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/Image/StreamingImageTests.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -148,32 +149,11 @@ namespace UnitTest size_t m_expectedTimestamp = 0; }; - class TestStreamingImageControllerAsset - : public AZ::RPI::StreamingImageControllerAsset - { - public: - AZ_CLASS_ALLOCATOR(TestStreamingImageControllerAsset, AZ::SystemAllocator, 0); - AZ_RTTI(TestStreamingImageControllerAsset, "{A90B4AC0-979A-4F01-AD41-B1D32DD9DAEC}", AZ::RPI::StreamingImageControllerAsset); - - static void Reflect(AZ::ReflectContext* context) - { - if (auto* serializeContext = azrtti_cast(context)) - { - serializeContext->Class(); - } - } - - TestStreamingImageControllerAsset() - { - m_status = AssetStatus::Ready; - } - }; - class StreamingImageTests : public RPITestFixture { private: - AZ::Data::Asset m_testControllerAsset; + AZ::Data::Asset m_testControllerAsset; protected: AZ::RPI::BuiltInAssetHandler* m_testControllerAssetHandler; @@ -184,7 +164,7 @@ namespace UnitTest AZ::Data::Instance m_defaultPool = nullptr; StreamingImageTests() - : m_testControllerAssetId("{9202CEC4-4E31-443C-ABE8-512B3E896448}") + : m_testControllerAssetId(AZ::RPI::DefaultStreamingImageControllerAsset::BuiltInAssetId) {} void SetUp() override @@ -194,23 +174,12 @@ namespace UnitTest RPITestFixture::SetUp(); auto* serializeContext = GetSerializeContext(); - TestStreamingImageControllerAsset::Reflect(serializeContext); TestStreamingImagePoolDescriptor::Reflect(serializeContext); - m_testControllerAssetHandler = aznew RPI::BuiltInAssetHandler( - azrtti_typeid(), - []() { return aznew TestStreamingImageControllerAsset(); }); - m_testControllerAssetHandler->Register(); - m_testControllerAsset = Data::AssetManager::Instance().CreateAsset(m_testControllerAssetId); - - Data::InstanceDatabase::Instance().AddHandler( - azrtti_typeid(), - [](Data::AssetData*) { return aznew TestStreamingImageController(); }); - m_imageHandler = Data::AssetManager::Instance().GetHandler(RPI::StreamingImageAsset::RTTI_Type()); m_mipChainHandler = Data::AssetManager::Instance().GetHandler(RPI::ImageMipChainAsset::RTTI_Type()); - AZ::Data::Asset < AZ::RPI::StreamingImagePoolAsset > poolAsset = BuildImagePoolAsset(16 * 1024 * 1024); + AZ::Data::Asset poolAsset = BuildImagePoolAsset(16 * 1024 * 1024); m_defaultPool = AZ::RPI::StreamingImagePool::FindOrCreate(poolAsset); } @@ -221,10 +190,6 @@ namespace UnitTest m_defaultPool = nullptr; - m_testControllerAsset.Release(); - delete m_testControllerAssetHandler; - Data::InstanceDatabase::Instance().RemoveHandler(azrtti_typeid()); - RPITestFixture::TearDown(); } @@ -341,7 +306,7 @@ namespace UnitTest { Data::Asset asset = poolAsset->GetControllerAsset(); - EXPECT_TRUE(azrtti_typeid() == asset.GetType()); + EXPECT_TRUE(azrtti_typeid() == asset.GetType()); } } @@ -459,7 +424,7 @@ namespace UnitTest assetCreator.SetPoolDescriptor(AZStd::make_unique(budgetInBytes)); assetCreator.SetControllerAsset( - Data::AssetManager::Instance().GetAsset( + Data::AssetManager::Instance().GetAsset( m_testControllerAssetId, Data::AssetLoadBehavior::PreLoad) ); diff --git a/Gems/Atom/RPI/Code/Tests/Material/LuaMaterialFunctorTests.cpp b/Gems/Atom/RPI/Code/Tests/Material/LuaMaterialFunctorTests.cpp index 3dcbdfce07..225ad73a59 100644 --- a/Gems/Atom/RPI/Code/Tests/Material/LuaMaterialFunctorTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/Material/LuaMaterialFunctorTests.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -125,7 +126,7 @@ namespace UnitTest // Setup for a single material property and a specific shader constant input void Setup( - Data::Asset materialSrgAsset, + RHI::Ptr materialSrgLayout, MaterialPropertyDataType dataType, const char* materialPropertyName, const char* shaderInputName, @@ -133,7 +134,7 @@ namespace UnitTest { MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); - materialTypeCreator.AddShader(CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgAsset)); + materialTypeCreator.AddShader(CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout)); materialTypeCreator.BeginMaterialProperty(Name{materialPropertyName}, dataType); materialTypeCreator.EndMaterialProperty(); LuaMaterialFunctorTests::AddLuaFunctor(materialTypeCreator, luaFunctorScript); @@ -238,18 +239,19 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::Bool, "general.TestBool", "m_bool", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::Bool, "general.TestBool", "m_bool", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{true}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(true, testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{false}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(false, testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } @@ -270,13 +272,14 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::Float, "general.TestFloat", "m_float", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::Float, "general.TestFloat", "m_float", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{1.25f}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_FLOAT_EQ(2.5f, testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } @@ -297,13 +300,14 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::Int, "general.TestInt", "m_int", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::Int, "general.TestInt", "m_int", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{2}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(-2, testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } @@ -324,13 +328,14 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::UInt, "general.TestUInt", "m_uint", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::UInt, "general.TestUInt", "m_uint", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{2u}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(7, testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } @@ -354,13 +359,14 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::Vector2, "general.TestVector2", "m_float2", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::Vector2, "general.TestVector2", "m_float2", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{Vector2(1.0f, 2.0f)}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(Vector2(2.0f, 1.0f), testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } @@ -382,13 +388,14 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::Vector3, "general.TestVector3", "m_float3", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::Vector3, "general.TestVector3", "m_float3", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{Vector3(5.0f, 4.0f, 3.0f)}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(Vector3(5.0f, 4.0f, 3.0f).GetNormalized(), testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } @@ -410,13 +417,14 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::Vector4, "general.TestVector4", "m_float4", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::Vector4, "general.TestVector4", "m_float4", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{Vector4(1.0f, 2.0f, 3.0f, 4.0f)}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(Vector4(1.0f, 2.0f, 3.0f, 4.0f) / 4.0f, testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } @@ -444,13 +452,14 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::Color, "general.TestColor", "m_color", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::Color, "general.TestColor", "m_color", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{Color(1.0f, 0.5f, 0.4f, 0.5f)}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(Color(0.5f, 0.25f, 0.2f, 0.5f), testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } @@ -472,13 +481,14 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::Float, "general.Scale", "m_float3x3", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::Float, "general.Scale", "m_float3x3", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{0.5f}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(Matrix3x3::CreateScale(Vector3(0.5f, 0.5f, 1.0f)), testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } @@ -500,13 +510,14 @@ namespace UnitTest end )"; - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); TestMaterialData testData; - testData.Setup(materialSrgAsset, MaterialPropertyDataType::Vector3, "general.Offset", "m_float4x4", functorScript); + testData.Setup(materialSrgLayout, MaterialPropertyDataType::Vector3, "general.Offset", "m_float4x4", functorScript); testData.GetMaterial()->SetPropertyValue(testData.GetMaterialPropertyIndex(), MaterialPropertyValue{Vector3(1.0f, 2.0f, 3.0f)}); - ProcessQueuedSrgCompilations(materialSrgAsset); + ProcessQueuedSrgCompilations(shaderAsset, materialSrgLayout->GetName()); EXPECT_TRUE(testData.GetMaterial()->Compile()); EXPECT_EQ(Matrix4x4::CreateTranslation(Vector3(1.0f, 2.0f, 3.0f)), testData.GetMaterial()->GetRHIShaderResourceGroup()->GetData().GetConstant(testData.GetSrgConstantIndex())); } diff --git a/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTestUtils.cpp b/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTestUtils.cpp index 9c52e6f71b..7840419fd4 100644 --- a/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTestUtils.cpp +++ b/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTestUtils.cpp @@ -11,7 +11,6 @@ */ #include -#include #include #include #include @@ -53,7 +52,7 @@ namespace UnitTest AddMaterialPropertyForSrg(materialTypeCreator, Name{ propertyGroupPrefix + "MyEnum" }, MaterialPropertyDataType::Enum, Name{ "m_enum" }); } - AZ::Data::Asset CreateCommonTestMaterialSrgAsset() + AZ::RHI::Ptr CreateCommonTestMaterialSrgLayout() { using namespace AZ; using namespace RPI; @@ -62,123 +61,28 @@ namespace UnitTest // Note we specify the shader inputs and material properties in a different order so the indexes don't align // We also include a couple unused inputs to further make sure shader and material indexes don't align - ShaderResourceGroupAssetCreator srgCreator; - srgCreator.Begin(Uuid::CreateRandom(), Name("MaterialSrg")); - srgCreator.BeginAPI(RHI::Factory::Get().GetType()); - srgCreator.SetBindingSlot(SrgBindingSlot::Material); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_unused" }, 0, 4, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_color" }, 4, 16, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float" }, 20, 4, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_int" }, 24, 4, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_uint" }, 28, 4, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float2" }, 32, 8, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float3" }, 40, 12, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float4" }, 52, 16, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_enum" }, 68, 4, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_bool" }, 72, 4, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float3x3" }, 76, 44, 0}); // See ConstantsData::SetConstant for packing rules - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float4x4" }, 120, 64, 0}); - srgCreator.AddShaderInput(RHI::ShaderInputImageDescriptor{Name{ "m_unusedImage" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 1}); - srgCreator.AddShaderInput(RHI::ShaderInputImageDescriptor{Name{ "m_image" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 2}); - srgCreator.EndAPI(); + AZ::RHI::Ptr srgLayout = RHI::ShaderResourceGroupLayout::Create(); + srgLayout->SetName(Name("MaterialSrg")); + srgLayout->SetUniqueId(Uuid::CreateRandom().ToString()); // Any random string will suffice. + srgLayout->SetBindingSlot(SrgBindingSlot::Material); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_unused" }, 0, 4, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_color" }, 4, 16, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float" }, 20, 4, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_int" }, 24, 4, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_uint" }, 28, 4, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float2" }, 32, 8, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float3" }, 40, 12, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float4" }, 52, 16, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_enum" }, 68, 4, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_bool" }, 72, 4, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float3x3" }, 76, 44, 0}); // See ConstantsData::SetConstant for packing rules + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{ "m_float4x4" }, 120, 64, 0}); + srgLayout->AddShaderInput(RHI::ShaderInputImageDescriptor{Name{ "m_unusedImage" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 1}); + srgLayout->AddShaderInput(RHI::ShaderInputImageDescriptor{Name{ "m_image" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 2}); - AZ::Data::Asset srgAsset; - EXPECT_TRUE(srgCreator.End(srgAsset)); + EXPECT_TRUE(srgLayout->Finalize()); - return srgAsset; + return srgLayout; } - template - void AddShaderInputToBindingInfo(AZ::RHI::ShaderResourceGroupBindingInfo& bindingInfo, const T& shaderInputs) - { - for (const auto& shaderInput : shaderInputs) - { - bindingInfo.m_resourcesRegisterMap.insert({shaderInput.m_name.GetStringView(), AZ::RHI::ResourceBindingInfo{AZ::RHI::ShaderStageMask::Vertex, shaderInput.m_registerId}}); - } - } - - AZ::RHI::ShaderResourceGroupBindingInfo CreateShaderResourceGroupBindingInfo(const AZ::RHI::ShaderResourceGroupLayout* layout) - { - using namespace AZ; - - RHI::ShaderResourceGroupBindingInfo bindingInfo; - if (!layout) - { - return bindingInfo; - } - - if (layout->GetConstantDataSize()) - { - // All constant in the SRG use the same the register id. - bindingInfo.m_constantDataBindingInfo.m_registerId = layout->GetShaderInputListForConstants()[0].m_registerId; - } - - AddShaderInputToBindingInfo(bindingInfo, layout->GetShaderInputListForBuffers()); - AddShaderInputToBindingInfo(bindingInfo, layout->GetShaderInputListForSamplers()); - AddShaderInputToBindingInfo(bindingInfo, layout->GetShaderInputListForImages()); - AddShaderInputToBindingInfo(bindingInfo, layout->GetStaticSamplers()); - - return bindingInfo; - } - - AZ::Data::Asset CreateTestShaderAsset( - const AZ::Data::AssetId& shaderAssetId, - AZ::Data::Asset optionalMaterialSrg, - AZ::RPI::Ptr optionalShaderOptions) - { - using namespace AZ; - using namespace RPI; - using namespace RHI; - - Data::Asset shaderAsset; - - RHI::Ptr pipelineLayoutDescriptor = RHI::PipelineLayoutDescriptor::Create(); - if (optionalMaterialSrg.IsReady()) - { - const RHI::ShaderResourceGroupLayout* layout = optionalMaterialSrg->GetLayout(); - RHI::ShaderResourceGroupBindingInfo bindingInfo = CreateShaderResourceGroupBindingInfo(layout); - pipelineLayoutDescriptor->AddShaderResourceGroupLayoutInfo(*layout, bindingInfo); - } - pipelineLayoutDescriptor->Finalize(); - - if (!optionalShaderOptions) - { - optionalShaderOptions = RPI::ShaderOptionGroupLayout::Create(); - optionalShaderOptions->Finalize(); - } - - ShaderAssetCreator shaderAssetCreator; - shaderAssetCreator.Begin(shaderAssetId); - - shaderAssetCreator.SetDrawListName(Name{"depth"}); - if (optionalMaterialSrg.IsReady()) - { - shaderAssetCreator.AddShaderResourceGroupAsset(optionalMaterialSrg); - } - shaderAssetCreator.SetShaderOptionGroupLayout(optionalShaderOptions); - - shaderAssetCreator.BeginAPI(RHI::Factory::Get().GetType()); - - RHI::ShaderStageAttributeMapList attributeMaps; - attributeMaps.resize(RHI::ShaderStageCount); - shaderAssetCreator.SetShaderStageAttributeMapList(attributeMaps); - - ShaderVariantAssetCreator shaderVariantAssetCreator; - shaderVariantAssetCreator.Begin(Uuid::CreateRandom(), RPI::ShaderVariantId(), RootShaderVariantStableId, optionalShaderOptions.get()); - - RHI::Ptr shaderStageFunction = aznew StubRHI::ShaderStageFunction; - shaderVariantAssetCreator.SetShaderFunction(RHI::ShaderStage::Vertex, shaderStageFunction); - - Data::Asset shaderVariantAsset; - EXPECT_TRUE(shaderVariantAssetCreator.End(shaderVariantAsset)); - - shaderAssetCreator.SetRootShaderVariantAsset(shaderVariantAsset); - shaderAssetCreator.SetPipelineLayout(pipelineLayoutDescriptor); - - EXPECT_TRUE(shaderAssetCreator.EndAPI()); - EXPECT_TRUE(shaderAssetCreator.End(shaderAsset)); - - return shaderAsset; - } - -} +} // namespace UnitTest diff --git a/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTestUtils.h b/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTestUtils.h index 148881bed6..6e2758eee1 100644 --- a/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTestUtils.h +++ b/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTestUtils.h @@ -36,11 +36,6 @@ namespace UnitTest void AddCommonTestMaterialProperties(AZ::RPI::MaterialTypeAssetCreator& materialTypeCreator, AZStd::string propertyGroupPrefix = ""); - AZ::Data::Asset CreateCommonTestMaterialSrgAsset(); + AZ::RHI::Ptr CreateCommonTestMaterialSrgLayout(); - //! Utility function for creating the simplest possible ShaderAsset - AZ::Data::Asset CreateTestShaderAsset( - const AZ::Data::AssetId& shaderAssetId, - AZ::Data::Asset optionalMaterialSrg = {}, - AZ::RPI::Ptr optionalShaderOptions = nullptr); -} +} //namespace UnitTest diff --git a/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTests.cpp b/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTests.cpp index a859b8363e..442ca43e6b 100644 --- a/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/Material/MaterialAssetTests.cpp @@ -13,12 +13,12 @@ #include #include #include +#include #include #include #include #include -#include namespace UnitTest { @@ -36,13 +36,13 @@ namespace UnitTest { RPITestFixture::SetUp(); - Data::Asset materialSrgAsset = CreateCommonTestMaterialSrgAsset(); + auto materialSrgLayout = CreateCommonTestMaterialSrgLayout(); // Since this test doesn't actually instantiate a Material, it won't need to instantiate this ImageAsset, so all we // need is an asset reference with a valid ID. m_testImageAsset = Data::Asset{ Uuid::CreateRandom(), azrtti_typeid() }; - Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgAsset); + auto shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), materialSrgLayout); MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); diff --git a/Gems/Atom/RPI/Code/Tests/Material/MaterialFunctorTests.cpp b/Gems/Atom/RPI/Code/Tests/Material/MaterialFunctorTests.cpp index c5e25b51c1..5b18b04a5d 100644 --- a/Gems/Atom/RPI/Code/Tests/Material/MaterialFunctorTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/Material/MaterialFunctorTests.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -145,7 +146,7 @@ namespace UnitTest // structures that we can pass to the functors below, especially the shader with shader options. MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); - materialTypeCreator.AddShader(CreateTestShaderAsset(Uuid::CreateRandom(), CreateCommonTestMaterialSrgAsset(), shaderOptions)); + materialTypeCreator.AddShader(CreateTestShaderAsset(Uuid::CreateRandom(), CreateCommonTestMaterialSrgLayout(), shaderOptions)); // We claim ownership of options A and B, but not C. So C is a globally accessible option, not owned by the material. materialTypeCreator.ClaimShaderOptionOwnership(Name{"o_optionA"}); materialTypeCreator.ClaimShaderOptionOwnership(Name{"o_optionB"}); diff --git a/Gems/Atom/RPI/Code/Tests/Material/MaterialSourceDataTests.cpp b/Gems/Atom/RPI/Code/Tests/Material/MaterialSourceDataTests.cpp index d08da67607..8402520fb9 100644 --- a/Gems/Atom/RPI/Code/Tests/Material/MaterialSourceDataTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/Material/MaterialSourceDataTests.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -20,7 +21,6 @@ #include #include #include -#include #include #include @@ -39,7 +39,7 @@ namespace UnitTest : public RPITestFixture { protected: - Data::Asset m_testMaterialSrgAsset; + RHI::Ptr m_testMaterialSrgLayout; Data::Asset m_testShaderAsset; Data::Asset m_testMaterialTypeAsset; Data::Asset m_testImageAsset; @@ -63,9 +63,9 @@ namespace UnitTest AZ::Utils::GetExecutableDirectory(rootPath, AZ_MAX_PATH_LEN); localFileIO->SetAlias("@exefolder@", rootPath); - m_testMaterialSrgAsset = CreateCommonTestMaterialSrgAsset(); + m_testMaterialSrgLayout = CreateCommonTestMaterialSrgLayout(); - m_testShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset); + m_testShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout); MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); @@ -85,7 +85,7 @@ namespace UnitTest void TearDown() override { m_testMaterialTypeAsset.Reset(); - m_testMaterialSrgAsset.Reset(); + m_testMaterialSrgLayout = nullptr; m_testShaderAsset.Reset(); m_testImageAsset.Reset(); diff --git a/Gems/Atom/RPI/Code/Tests/Material/MaterialTests.cpp b/Gems/Atom/RPI/Code/Tests/Material/MaterialTests.cpp index 9ccbf96b6a..561a297c5e 100644 --- a/Gems/Atom/RPI/Code/Tests/Material/MaterialTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/Material/MaterialTests.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -21,7 +22,6 @@ #include #include #include -#include #include #include @@ -34,7 +34,8 @@ namespace UnitTest : public RPITestFixture { protected: - Data::Asset m_testMaterialSrgAsset; + Data::Asset m_testMaterialShaderAsset; + AZ::RHI::Ptr m_testMaterialSrgLayout; Data::Asset m_testMaterialTypeAsset; Data::Asset m_testMaterialAsset; Data::Asset m_testImageAsset; @@ -67,13 +68,12 @@ namespace UnitTest { RPITestFixture::SetUp(); - m_testMaterialSrgAsset = CreateCommonTestMaterialSrgAsset(); - - Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset); + m_testMaterialSrgLayout = CreateCommonTestMaterialSrgLayout(); + m_testMaterialShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout); MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); - materialTypeCreator.AddShader(shaderAsset); + materialTypeCreator.AddShader(m_testMaterialShaderAsset); AddCommonTestMaterialProperties(materialTypeCreator); materialTypeCreator.SetPropertyValue(Name{ "MyFloat2" }, Vector2{ 10.1f, 10.2f }); materialTypeCreator.SetPropertyValue(Name{ "MyFloat3" }, Vector3{ 11.1f, 11.2f, 11.3f }); @@ -105,7 +105,8 @@ namespace UnitTest void TearDown() override { - m_testMaterialSrgAsset.Reset(); + m_testMaterialShaderAsset.Reset(); + m_testMaterialSrgLayout = nullptr; m_testMaterialTypeAsset.Reset(); m_testMaterialAsset.Reset(); m_testImageAsset.Reset(); @@ -254,7 +255,7 @@ namespace UnitTest EXPECT_EQ(material->GetPropertyValue>(material->FindPropertyIndex(Name{ "MyImage" })), otherTestImage); EXPECT_EQ(material->GetPropertyValue(material->FindPropertyIndex(Name{ "MyEnum" })), 3u); - ProcessQueuedSrgCompilations(m_testMaterialSrgAsset); + ProcessQueuedSrgCompilations(m_testMaterialShaderAsset, m_testMaterialSrgLayout->GetName()); material->Compile(); // Dig in to the SRG to make sure the values were applied there as well... @@ -280,13 +281,12 @@ namespace UnitTest TEST_F(MaterialTests, TestSetPropertyValueToMultipleShaderSettings) { - Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset); Data::Asset materialTypeAsset; Data::Asset materialAsset; MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); - materialTypeCreator.AddShader(shaderAsset); + materialTypeCreator.AddShader(m_testMaterialShaderAsset); materialTypeCreator.BeginMaterialProperty(Name{ "MyInt" }, MaterialPropertyDataType::Int); materialTypeCreator.ConnectMaterialPropertyToShaderInput(Name{ "m_int" }); materialTypeCreator.ConnectMaterialPropertyToShaderInput(Name{ "m_uint" }); @@ -305,7 +305,7 @@ namespace UnitTest EXPECT_EQ(material->GetPropertyValue(material->FindPropertyIndex(Name{ "MyInt" })), 42); - ProcessQueuedSrgCompilations(m_testMaterialSrgAsset); + ProcessQueuedSrgCompilations(m_testMaterialShaderAsset, m_testMaterialSrgLayout->GetName()); material->Compile(); // Dig in to the SRG to make sure the values were applied to both shader constants... @@ -340,7 +340,7 @@ namespace UnitTest Data::Instance actualImageInstance = material->GetPropertyValue>(material->FindPropertyIndex(Name{"MyImage"})); EXPECT_EQ(actualImageInstance, nullImageInstance); - ProcessQueuedSrgCompilations(m_testMaterialSrgAsset); + ProcessQueuedSrgCompilations(m_testMaterialShaderAsset, m_testMaterialSrgLayout->GetName()); material->Compile(); const RHI::ShaderResourceGroupData& srgData = material->GetRHIShaderResourceGroup()->GetData(); @@ -403,7 +403,7 @@ namespace UnitTest { Ptr optionsLayout = CreateTestOptionsLayout(); - Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, optionsLayout); + Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, optionsLayout); MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); @@ -484,7 +484,8 @@ namespace UnitTest { Ptr optionsLayout = CreateTestOptionsLayout(); - Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, optionsLayout); + Data::Asset shaderAsset = + CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, optionsLayout); MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); @@ -551,7 +552,8 @@ namespace UnitTest { Ptr optionsLayout = CreateTestOptionsLayout(); - Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, optionsLayout); + Data::Asset shaderAsset = + CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, optionsLayout); MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); @@ -622,7 +624,7 @@ namespace UnitTest { Ptr optionsLayout = CreateTestOptionsLayout(); - Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, optionsLayout); + Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, optionsLayout); MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); @@ -712,7 +714,7 @@ namespace UnitTest // Make sure the values have not changed - ProcessQueuedSrgCompilations(m_testMaterialSrgAsset); + ProcessQueuedSrgCompilations(m_testMaterialShaderAsset, m_testMaterialSrgLayout->GetName()); material->Compile(); ValidateInitialValuesFromMaterial(material); @@ -741,19 +743,16 @@ namespace UnitTest TEST_F(MaterialTests, ColorPropertyCanMapToFloat3) { - Data::Asset srgAsset; Data::Asset materialTypeAsset; Data::Asset materialAsset; - ShaderResourceGroupAssetCreator srgCreator; - srgCreator.Begin(Uuid::CreateRandom(), Name("MaterialSrg")); - srgCreator.BeginAPI(RHI::Factory::Get().GetType()); - srgCreator.SetBindingSlot(SrgBindingSlot::Material); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{"m_color"}, 0, 12, 0}); - srgCreator.EndAPI(); - srgCreator.End(srgAsset); + RHI::Ptr srgLayout = RHI::ShaderResourceGroupLayout::Create(); + srgLayout->SetName(Name("MaterialSrg")); + srgLayout->SetBindingSlot(SrgBindingSlot::Material); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name{"m_color"}, 0, 12, 0}); + ASSERT_TRUE(srgLayout->Finalize()); - Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), srgAsset); + Data::Asset shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), srgLayout); MaterialTypeAssetCreator materialTypeCreator; materialTypeCreator.Begin(Uuid::CreateRandom()); @@ -774,7 +773,7 @@ namespace UnitTest MaterialPropertyIndex colorProperty{0}; material->SetPropertyValue(colorProperty, inputColor); - ProcessQueuedSrgCompilations(srgAsset); + ProcessQueuedSrgCompilations(shaderAsset, srgLayout->GetName()); material->Compile(); AZ::Color colorFromMaterial = material->GetPropertyValue(colorProperty); diff --git a/Gems/Atom/RPI/Code/Tests/Material/MaterialTypeAssetTests.cpp b/Gems/Atom/RPI/Code/Tests/Material/MaterialTypeAssetTests.cpp index 599b098e51..a30bb975c2 100644 --- a/Gems/Atom/RPI/Code/Tests/Material/MaterialTypeAssetTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/Material/MaterialTypeAssetTests.cpp @@ -14,12 +14,12 @@ #include #include #include +#include #include #include #include #include -#include #include #include @@ -89,7 +89,7 @@ namespace UnitTest AZ::RPI::MaterialPropertyIndex m_enableIndex; }; - Data::Asset m_testMaterialSrgAsset; + RHI::Ptr m_testMaterialSrgLayout; Ptr m_testShaderOptionsLayout; Data::Asset m_testShaderAsset; Data::Asset m_testImageAsset; @@ -102,7 +102,7 @@ namespace UnitTest Splat3Functor::Reflect(GetSerializeContext()); DummyShaderCollectionFunctor::Reflect(GetSerializeContext()); - m_testMaterialSrgAsset = CreateCommonTestMaterialSrgAsset(); + m_testMaterialSrgLayout = CreateCommonTestMaterialSrgLayout(); AZStd::vector boolOptionValues; boolOptionValues.push_back({Name{"False"}, RPI::ShaderOptionValue{0}}); @@ -124,7 +124,7 @@ namespace UnitTest m_testShaderOptionsLayout->AddShaderOption(ShaderOptionDescriptor{Name{"o_lightCount"}, ShaderOptionType::IntegerRange, 3, order++, intOptionRange, Name{"0"}}); m_testShaderOptionsLayout->Finalize(); - m_testShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, m_testShaderOptionsLayout); + m_testShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, m_testShaderOptionsLayout); // Since this test doesn't actually instantiate a Material, it won't need to instantiate this ImageAsset, so all we // need is an asset reference with a valid ID. @@ -136,7 +136,7 @@ namespace UnitTest void TearDown() override { - m_testMaterialSrgAsset.Reset(); + m_testMaterialSrgLayout = nullptr; m_testShaderAsset.Reset(); m_testShaderOptionsLayout = nullptr; @@ -181,7 +181,7 @@ namespace UnitTest Ptr shaderInputFunctor = aznew Splat3Functor; shaderInputFunctor->m_floatIndex = materialTypeCreator.GetMaterialPropertiesLayout()->FindPropertyIndex(Name{ "NonAliasFloat" }); - shaderInputFunctor->m_vector3Index = m_testMaterialSrgAsset->GetLayout()->FindShaderInputConstantIndex(Name{ "m_float3" }); + shaderInputFunctor->m_vector3Index = m_testMaterialSrgLayout->FindShaderInputConstantIndex(Name{ "m_float3" }); materialTypeCreator.AddMaterialFunctor(shaderInputFunctor); EXPECT_TRUE(materialTypeCreator.End(materialTypeAsset)); @@ -198,7 +198,7 @@ namespace UnitTest // Validate the results { - EXPECT_EQ(m_testMaterialSrgAsset, materialTypeAsset->GetMaterialSrgAsset()); + EXPECT_EQ(m_testMaterialSrgLayout, materialTypeAsset->GetMaterialSrgLayout()); EXPECT_EQ(5, materialTypeAsset->GetMaterialPropertiesLayout()->GetPropertyCount()); // Check aliased properties @@ -235,7 +235,7 @@ namespace UnitTest // Check the functors - const RHI::ShaderInputConstantIndex expectedVector3Index = materialTypeAsset->GetMaterialSrgAsset()->GetLayout()->FindShaderInputConstantIndex(Name{ "m_float3" }); + const RHI::ShaderInputConstantIndex expectedVector3Index = materialTypeAsset->GetMaterialSrgLayout()->FindShaderInputConstantIndex(Name{ "m_float3" }); EXPECT_EQ(2, materialTypeAsset->GetMaterialFunctors().size()); const DummyShaderCollectionFunctor* shaderCollectionFunctor = azrtti_cast(materialTypeAsset->GetMaterialFunctors()[0].get()); @@ -356,7 +356,7 @@ namespace UnitTest materialTypeCreator.AddShader(m_testShaderAsset); // Add another shader that doesn't have shader options to demonstrate connecting to all // shaders with a given option simply skips shaders that don't have that option - materialTypeCreator.AddShader(CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset)); + materialTypeCreator.AddShader(CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout)); materialTypeCreator.BeginMaterialProperty(Name{"Quality"}, MaterialPropertyDataType::UInt); materialTypeCreator.ConnectMaterialPropertyToShaderOption(Name{"o_quality"}, 0); // Only connects to the first shader @@ -512,17 +512,16 @@ namespace UnitTest tester.SerializeOut(materialTypeAsset.Get(), AZ::DataStream::ST_XML); materialTypeAsset = tester.SerializeIn(Data::AssetId(Uuid::CreateRandom())); - EXPECT_FALSE(materialTypeAsset->GetMaterialSrgAsset().GetId().IsValid()); - EXPECT_FALSE(materialTypeAsset->GetMaterialSrgAsset().Get()); + EXPECT_FALSE(materialTypeAsset->GetMaterialSrgLayout()); EXPECT_EQ(0, materialTypeAsset->GetMaterialPropertiesLayout()->GetPropertyCount()); EXPECT_EQ(0, materialTypeAsset->GetMaterialFunctors().size()); } TEST_F(MaterialTypeAssetTests, TestWithMultipleShaders) { - Data::Asset shaderA = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, m_testShaderOptionsLayout); - Data::Asset shaderB = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, m_testShaderOptionsLayout); - Data::Asset shaderC = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, m_testShaderOptionsLayout); + Data::Asset shaderA = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, m_testShaderOptionsLayout); + Data::Asset shaderB = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, m_testShaderOptionsLayout); + Data::Asset shaderC = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, m_testShaderOptionsLayout); ShaderOptionGroup optionsA{m_testShaderOptionsLayout}; ShaderOptionGroup optionsB{m_testShaderOptionsLayout}; @@ -560,14 +559,14 @@ namespace UnitTest EXPECT_FALSE(materialTypeAsset->GetShaderCollection()[2].GetShaderOptions()->GetValue(Name{"o_quality"}).IsValid()); EXPECT_FALSE(materialTypeAsset->GetShaderCollection()[2].GetShaderOptions()->GetValue(Name{"o_lightCount"}).IsValid()); - EXPECT_EQ(m_testMaterialSrgAsset, materialTypeAsset->GetMaterialSrgAsset()); + EXPECT_EQ(m_testMaterialSrgLayout, materialTypeAsset->GetMaterialSrgLayout()); } TEST_F(MaterialTypeAssetTests, TestWithMultipleShaders_OnlyOneUsesSRG) { Data::Asset shaderA = CreateTestShaderAsset(Uuid::CreateRandom(), {}); - Data::Asset shaderB = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset); + Data::Asset shaderB = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout); Data::Asset shaderC = CreateTestShaderAsset(Uuid::CreateRandom(), {}); Data::Asset materialTypeAsset; @@ -579,7 +578,7 @@ namespace UnitTest materialTypeCreator.AddShader(shaderC); EXPECT_TRUE(materialTypeCreator.End(materialTypeAsset)); - EXPECT_EQ(m_testMaterialSrgAsset, materialTypeAsset->GetMaterialSrgAsset()); + EXPECT_EQ(m_testMaterialSrgLayout, materialTypeAsset->GetMaterialSrgLayout()); } TEST_F(MaterialTypeAssetTests, Error_NoBegin_BeforeBeginMaterialProperty) @@ -633,16 +632,13 @@ namespace UnitTest TEST_F(MaterialTypeAssetTests, Error_MultipleShadersUsingDifferentSRGs) { - Data::Asset otherPerMaterialSRG; - ShaderResourceGroupAssetCreator srgCreator; - srgCreator.Begin(Uuid::CreateRandom(), Name("MaterialSrg")); - srgCreator.BeginAPI(RHI::Factory::Get().GetType()); - srgCreator.SetBindingSlot(SrgBindingSlot::Material); - srgCreator.EndAPI(); - srgCreator.End(otherPerMaterialSRG); + RHI::Ptr otherPerMaterialSRGLayout = RHI::ShaderResourceGroupLayout::Create(); + otherPerMaterialSRGLayout->SetName(Name("MaterialSrg")); + otherPerMaterialSRGLayout->SetBindingSlot(SrgBindingSlot::Material); + otherPerMaterialSRGLayout->Finalize(); - Data::Asset shaderA = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset); - Data::Asset shaderB = CreateTestShaderAsset(Uuid::CreateRandom(), otherPerMaterialSRG); + Data::Asset shaderA = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout); + Data::Asset shaderB = CreateTestShaderAsset(Uuid::CreateRandom(), otherPerMaterialSRGLayout); Data::Asset materialTypeAsset; diff --git a/Gems/Atom/RPI/Code/Tests/Material/MaterialTypeSourceDataTests.cpp b/Gems/Atom/RPI/Code/Tests/Material/MaterialTypeSourceDataTests.cpp index fd0b432e6e..a359a24081 100644 --- a/Gems/Atom/RPI/Code/Tests/Material/MaterialTypeSourceDataTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/Material/MaterialTypeSourceDataTests.cpp @@ -13,13 +13,13 @@ #include #include #include +#include #include #include #include #include #include -#include #include #include #include @@ -38,12 +38,11 @@ namespace UnitTest { protected: - Data::Asset m_testMaterialSrgAsset; + RHI::Ptr m_testMaterialSrgLayout; Data::Asset m_testShaderAsset; Data::Asset m_testShaderAsset2; Data::Asset m_testImageAsset; Data::Asset m_testImageAsset2; // For relative path testing. - static constexpr const char* TestMaterialSrgFilename = "test.azsl"; static constexpr const char* TestShaderFilename = "test.shader"; static constexpr const char* TestShaderFilename2 = "extra.shader"; static constexpr const char* TestImageFilename = "test.streamingimage"; @@ -270,26 +269,19 @@ namespace UnitTest AZ::RPI::MaterialFunctorSourceDataRegistration::Get()->RegisterMaterialFunctor("SetShaderOption", azrtti_typeid()); const Name materialSrgId{"MaterialSrg"}; - - // We can use a random source file Uuid, but based on the current implementation we require the - // per-material asset sub-Id to be a hash of the SRG name. - Data::AssetId materialSrgAssetId{ Uuid::CreateRandom(), AssetUtils::CalcSrgProductSubId(materialSrgId) }; - - ShaderResourceGroupAssetCreator srgAssetCreator; - srgAssetCreator.Begin(materialSrgAssetId, materialSrgId); - srgAssetCreator.BeginAPI(RHI::Factory::Get().GetType()); - srgAssetCreator.SetBindingSlot(SrgBindingSlot::Material); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_color" }, 4, 16, 0 }); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_float" }, 20, 4, 0 }); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_int" }, 24, 4, 0 }); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_uint" }, 28, 4, 0 }); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_float2" }, 32, 8, 0 }); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_float3" }, 40, 12, 0 }); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_float4" }, 52, 16, 0 }); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_bool" }, 68, 1, 0 }); - srgAssetCreator.AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "m_image" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 1 }); - EXPECT_TRUE(srgAssetCreator.EndAPI()); - EXPECT_TRUE(srgAssetCreator.End(m_testMaterialSrgAsset)); + m_testMaterialSrgLayout = RHI::ShaderResourceGroupLayout::Create(); + m_testMaterialSrgLayout->SetName(materialSrgId); + m_testMaterialSrgLayout->SetBindingSlot(SrgBindingSlot::Material); + m_testMaterialSrgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_color" }, 4, 16, 0 }); + m_testMaterialSrgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_float" }, 20, 4, 0 }); + m_testMaterialSrgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_int" }, 24, 4, 0 }); + m_testMaterialSrgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_uint" }, 28, 4, 0 }); + m_testMaterialSrgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_float2" }, 32, 8, 0 }); + m_testMaterialSrgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_float3" }, 40, 12, 0 }); + m_testMaterialSrgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_float4" }, 52, 16, 0 }); + m_testMaterialSrgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "m_bool" }, 68, 1, 0 }); + m_testMaterialSrgLayout->AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "m_image" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 1 }); + EXPECT_TRUE(m_testMaterialSrgLayout->Finalize()); AZStd::vector optionValues; optionValues.push_back({Name("Low"), RPI::ShaderOptionValue(0)}); @@ -303,7 +295,7 @@ namespace UnitTest shaderOptions->AddShaderOption(ShaderOptionDescriptor{Name{"o_bar"}, ShaderOptionType::Enumeration, 4, order++, optionValues, Name{"Low"}}); shaderOptions->Finalize(); - m_testShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, shaderOptions); + m_testShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, shaderOptions); m_testShaderAsset2 = CreateTestShaderAsset(Uuid::CreateRandom()); // Since this test doesn't actually instantiate a Material, it won't need to instantiate this ImageAsset, so all we @@ -311,10 +303,6 @@ namespace UnitTest m_testImageAsset = Data::Asset{ Data::AssetId{ Uuid::CreateRandom(), StreamingImageAsset::GetImageAssetSubId() }, azrtti_typeid() }; m_testImageAsset2 = Data::Asset{ Data::AssetId{ Uuid::CreateRandom(), StreamingImageAsset::GetImageAssetSubId() }, azrtti_typeid() }; - // Register the test assets with the AssetSystemStub so CreateMaterialTypeAsset() can use AssetUtils. - Data::AssetInfo testMaterialAssetInfo; - testMaterialAssetInfo.m_assetId = m_testMaterialSrgAsset.GetId(); - Data::AssetInfo testShaderAssetInfo; testShaderAssetInfo.m_assetId = m_testShaderAsset.GetId(); @@ -328,7 +316,6 @@ namespace UnitTest testImageAssetInfo2.m_assetId = m_testImageAsset2.GetId(); testImageAssetInfo2.m_assetType = azrtti_typeid(); - m_assetSystemStub.RegisterSourceInfo(TestMaterialSrgFilename, testMaterialAssetInfo, ""); m_assetSystemStub.RegisterSourceInfo(TestShaderFilename, testShaderAssetInfo, ""); m_assetSystemStub.RegisterSourceInfo(TestShaderFilename2, testShaderAssetInfo2, ""); m_assetSystemStub.RegisterSourceInfo(TestImageFilename, testImageAssetInfo, ""); @@ -340,7 +327,7 @@ namespace UnitTest void TearDown() override { - m_testMaterialSrgAsset.Reset(); + m_testMaterialSrgLayout = nullptr; m_testShaderAsset.Reset(); m_testShaderAsset2.Reset(); @@ -375,7 +362,7 @@ namespace UnitTest Data::Asset materialTypeAsset = materialTypeOutcome.GetValue(); - EXPECT_EQ(m_testMaterialSrgAsset, materialTypeAsset->GetMaterialSrgAsset()); + EXPECT_EQ(m_testMaterialSrgLayout, materialTypeAsset->GetMaterialSrgLayout()); } TEST_F(MaterialTypeSourceDataTests, CreateMaterialTypeAsset_NoMaterialSrgAsset) @@ -396,7 +383,7 @@ namespace UnitTest Data::Asset materialTypeAsset = materialTypeOutcome.GetValue(); - EXPECT_FALSE(materialTypeAsset->GetMaterialSrgAsset().GetId().IsValid()); + EXPECT_FALSE(materialTypeAsset->GetMaterialSrgLayout()); } TEST_F(MaterialTypeSourceDataTests, CreateMaterialTypeAsset_WithMultipleShaders) @@ -414,8 +401,8 @@ namespace UnitTest shaderOptions->AddShaderOption(ShaderOptionDescriptor{Name{"o_bar"}, ShaderOptionType::Enumeration, 2, order++, optionValues, Name{"Low"}}); shaderOptions->Finalize(); - Data::Asset shaderAssetA = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, shaderOptions); - Data::Asset shaderAssetB = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, shaderOptions); + Data::Asset shaderAssetA = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, shaderOptions); + Data::Asset shaderAssetB = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, shaderOptions); Data::Asset shaderAssetC = CreateTestShaderAsset(Uuid::CreateRandom(), {}, shaderOptions); Data::AssetInfo shaderAssetAInfo; @@ -454,7 +441,7 @@ namespace UnitTest // Check the results... - EXPECT_EQ(m_testMaterialSrgAsset, materialTypeAsset->GetMaterialSrgAsset()); + EXPECT_EQ(m_testMaterialSrgLayout, materialTypeAsset->GetMaterialSrgLayout()); EXPECT_EQ(3, materialTypeAsset->GetShaderCollection().size()); EXPECT_EQ(shaderAssetA, materialTypeAsset->GetShaderCollection()[0].GetShaderAsset()); EXPECT_EQ(shaderAssetB, materialTypeAsset->GetShaderCollection()[1].GetShaderAsset()); @@ -715,7 +702,7 @@ namespace UnitTest shaderAOptions->AddShaderOption(ShaderOptionDescriptor{ Name{"o_quality"}, ShaderOptionType::Enumeration, 0, order++, optionValues, Name{"Low"} }); shaderAOptions->AddShaderOption(ShaderOptionDescriptor{ Name{"o_speed"}, ShaderOptionType::Enumeration, 2, order++, optionValues, Name{"Low"} }); shaderAOptions->Finalize(); - auto shaderA = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, shaderAOptions); + auto shaderA = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, shaderAOptions); Ptr shaderBOptions = ShaderOptionGroupLayout::Create(); order = 0; @@ -723,14 +710,14 @@ namespace UnitTest shaderBOptions->AddShaderOption(ShaderOptionDescriptor{ Name{"o_quality"}, ShaderOptionType::Enumeration, 2, order++, optionValues, Name{"Low"} }); shaderBOptions->AddShaderOption(ShaderOptionDescriptor{ Name{"o_speed"}, ShaderOptionType::Enumeration, 4, order++, optionValues, Name{"Low"} }); shaderBOptions->Finalize(); - auto shaderB = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, shaderBOptions); + auto shaderB = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, shaderBOptions); Ptr shaderCOptions = ShaderOptionGroupLayout::Create(); order = 0; shaderCOptions->AddShaderOption(ShaderOptionDescriptor{ Name{"o_accuracy"}, ShaderOptionType::Enumeration, 0, order++, optionValues, Name{"Low"} }); shaderCOptions->AddShaderOption(ShaderOptionDescriptor{ Name{"o_efficiency"}, ShaderOptionType::Enumeration, 2, order++, optionValues, Name{"Low"} }); shaderCOptions->Finalize(); - auto shaderC = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgAsset, shaderCOptions); + auto shaderC = CreateTestShaderAsset(Uuid::CreateRandom(), m_testMaterialSrgLayout, shaderCOptions); Data::AssetInfo testShaderAssetInfo; testShaderAssetInfo.m_assetId = shaderA.GetId(); @@ -841,7 +828,7 @@ namespace UnitTest EXPECT_TRUE(nullptr != shaderInputFunctor); EXPECT_EQ(propertyIndex, shaderInputFunctor->m_floatIndex); - const RHI::ShaderInputConstantIndex expectedVector3Index = materialTypeAsset->GetMaterialSrgAsset()->GetLayout()->FindShaderInputConstantIndex(Name{ "m_float3" }); + const RHI::ShaderInputConstantIndex expectedVector3Index = materialTypeAsset->GetMaterialSrgLayout()->FindShaderInputConstantIndex(Name{ "m_float3" }); EXPECT_EQ(expectedVector3Index, shaderInputFunctor->m_vector3Index); } diff --git a/Gems/Atom/RPI/Code/Tests/Shader/ShaderTests.cpp b/Gems/Atom/RPI/Code/Tests/Shader/ShaderTests.cpp index 7a3fe2454e..cf13e21193 100644 --- a/Gems/Atom/RPI/Code/Tests/Shader/ShaderTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/Shader/ShaderTests.cpp @@ -18,7 +18,6 @@ #include #include #include -#include #include #include @@ -240,11 +239,11 @@ namespace UnitTest for (size_t i = 0; i < RHI::Limits::Pipeline::ShaderResourceGroupCountMax; ++i) { - Data::Asset srgAsset = CreateShaderResourceGroupAsset(i); + RHI::Ptr srgLayout = CreateShaderResourceGroupLayout(i); AZ::RHI::ShaderResourceGroupBindingInfo bindingInfo = CreateShaderResouceGroupBindingInfo(i); - m_pipelineLayoutDescriptor->AddShaderResourceGroupLayoutInfo(*srgAsset->GetLayout(), bindingInfo); - m_srgAssets.push_back(srgAsset); + m_pipelineLayoutDescriptor->AddShaderResourceGroupLayoutInfo(*srgLayout.get(), bindingInfo); + m_srgLayouts.push_back(srgLayout); } m_pipelineLayoutDescriptor->Finalize(); @@ -260,7 +259,7 @@ namespace UnitTest m_bindings[i] = {}; } - m_srgAssets.clear(); + m_srgLayouts.clear(); m_pipelineLayoutDescriptor = nullptr; m_shaderOptionGroupLayoutForAsset = nullptr; m_shaderOptionGroupLayoutForVariants = nullptr; @@ -293,7 +292,7 @@ namespace UnitTest return Name{ AZStd::to_string(index) }; } - AZ::Data::Asset CreateShaderResourceGroupAsset(size_t index) + RHI::Ptr CreateShaderResourceGroupLayout(size_t index) { using namespace AZ; @@ -301,18 +300,15 @@ namespace UnitTest // Creates a simple SRG asset with a unique SRG layout hash (based on the index). - RPI::ShaderResourceGroupAssetCreator creator; - creator.Begin(Uuid::CreateRandom(), srgId); - creator.BeginAPI(RHI::Factory::Get().GetType()); - creator.SetBindingSlot(aznumeric_caster(index)); - creator.AddShaderInput(RHI::ShaderInputBufferDescriptor{ srgId, RHI::ShaderInputBufferAccess::Read, RHI::ShaderInputBufferType::Raw, 1, 4, static_cast(index) }); + RHI::Ptr srgLayout = RHI::ShaderResourceGroupLayout::Create(); + srgLayout->SetName(srgId); + srgLayout->SetBindingSlot(aznumeric_caster(index)); + srgLayout->AddShaderInput(RHI::ShaderInputBufferDescriptor{ + srgId, RHI::ShaderInputBufferAccess::Read, RHI::ShaderInputBufferType::Raw, 1, 4, static_cast(index) }); - Data::Asset srgAsset; - EXPECT_TRUE(creator.EndAPI()); - bool success = creator.End(srgAsset); - EXPECT_TRUE(success); + EXPECT_TRUE(srgLayout->Finalize()); - return srgAsset; + return srgLayout; } AZ::RHI::ShaderResourceGroupBindingInfo CreateShaderResouceGroupBindingInfo(size_t index) @@ -400,10 +396,12 @@ namespace UnitTest } Data::Asset CreateTestShaderVariantAsset(RPI::ShaderVariantId id, RPI::ShaderVariantStableId stableId, + bool isFullyBaked, const AZStd::vector& stagesToActivate = {RHI::ShaderStage::Vertex, RHI::ShaderStage::Fragment}) { RPI::ShaderVariantAssetCreator shaderVariantAssetCreator; - shaderVariantAssetCreator.Begin(Uuid::CreateRandom(), id, stableId, m_shaderOptionGroupLayoutForAsset.get()); + shaderVariantAssetCreator.Begin(Uuid::CreateRandom(), id, stableId, isFullyBaked); + shaderVariantAssetCreator.SetBuildTimestamp(AZStd::sys_time_t(1)); //Make non-zero for (RHI::ShaderStage rhiStage : stagesToActivate) { @@ -411,10 +409,6 @@ namespace UnitTest shaderVariantAssetCreator.SetShaderFunction(rhiStage, vertexStageFunction); } - shaderVariantAssetCreator.SetRenderStates(m_renderStates); - shaderVariantAssetCreator.SetInputContract(CreateSimpleShaderInputContract()); - shaderVariantAssetCreator.SetOutputContract(CreateSimpleShaderOutputContract()); - Data::Asset shaderVariantAsset; shaderVariantAssetCreator.End(shaderVariantAsset); @@ -431,21 +425,26 @@ namespace UnitTest creator.SetDrawListName(m_drawListName); creator.SetShaderOptionGroupLayout(m_shaderOptionGroupLayoutForAsset); - for (auto& srgAsset : m_srgAssets) - { - creator.AddShaderResourceGroupAsset(srgAsset); - } - creator.BeginAPI(RHI::Factory::Get().GetType()); + creator.BeginSupervariant(AZ::Name{}); // The default (first) supervariant MUST be nameless. + + creator.SetSrgLayoutList(m_srgLayouts); + creator.SetPipelineLayout(m_pipelineLayoutDescriptor); + + creator.SetRenderStates(m_renderStates); + creator.SetInputContract(CreateSimpleShaderInputContract()); + creator.SetOutputContract(CreateSimpleShaderOutputContract()); + RHI::ShaderStageAttributeMapList attributeMaps; attributeMaps.resize(RHI::ShaderStageCount); creator.SetShaderStageAttributeMapList(attributeMaps); - Data::Asset shaderVariantAsset = CreateTestShaderVariantAsset(RPI::ShaderVariantId{}, RPI::ShaderVariantStableId{0}, stagesToActivate); + Data::Asset shaderVariantAsset = CreateTestShaderVariantAsset(RPI::ShaderVariantId{}, RPI::ShaderVariantStableId{0}, false, stagesToActivate); creator.SetRootShaderVariantAsset(shaderVariantAsset); - creator.SetPipelineLayout(m_pipelineLayoutDescriptor); + + creator.EndSupervariant(); } //! Used to finish creating a shader that began with BeginCreatingTestShaderAsset(). Call this after adding all the desired shader variants. @@ -526,11 +525,11 @@ namespace UnitTest EXPECT_EQ(shaderAsset->GetShaderOptionGroupLayout()->GetHash(), m_shaderOptionGroupLayoutForAsset->GetHash()); EXPECT_EQ(shaderAsset->GetPipelineLayoutDescriptor()->GetHash(), m_pipelineLayoutDescriptor->GetHash()); - for (size_t i = 0; i < shaderAsset->GetShaderResourceGroupAssets().size(); ++i) + for (size_t i = 0; i < shaderAsset->GetShaderResourceGroupLayouts().size(); ++i) { - auto& srgAsset = shaderAsset->GetShaderResourceGroupAssets()[i]; - EXPECT_EQ(srgAsset, m_srgAssets[i]); - EXPECT_EQ(shaderAsset->FindShaderResourceGroupAsset(CreateShaderResourceGroupId(i)), srgAsset); + auto& srgLayout = shaderAsset->GetShaderResourceGroupLayouts()[i]; + EXPECT_EQ(srgLayout->GetHash(), m_srgLayouts[i]->GetHash()); + EXPECT_EQ(shaderAsset->FindShaderResourceGroupLayout(CreateShaderResourceGroupId(i))->GetHash(), srgLayout->GetHash()); } } @@ -543,7 +542,7 @@ namespace UnitTest auto shaderAsset = shader->GetAsset(); EXPECT_EQ(shader->GetPipelineStateType(), shaderAsset->GetPipelineStateType()); - EXPECT_EQ(shader->GetShaderResourceGroupAssets(), shaderAsset->GetShaderResourceGroupAssets()); + EXPECT_EQ(shader->GetShaderResourceGroupLayouts(), shaderAsset->GetShaderResourceGroupLayouts()); const RPI::ShaderVariant& rootShaderVariant = shader->GetVariant( RPI::ShaderVariantStableId{0} ); @@ -580,7 +579,7 @@ namespace UnitTest AZ::RHI::RenderStates m_renderStates; - AZStd::fixed_vector, AZ::RHI::Limits::Pipeline::ShaderResourceGroupCountMax> m_srgAssets; + AZStd::fixed_vector, AZ::RHI::Limits::Pipeline::ShaderResourceGroupCountMax> m_srgLayouts; }; TEST_F(ShaderTests, ShaderOptionBindingTest) @@ -1202,6 +1201,7 @@ namespace UnitTest { ErrorMessageFinder messageFinder("both Draw functions and Dispatch functions"); messageFinder.AddExpectedErrorMessage("Invalid root variant"); + messageFinder.AddExpectedErrorMessage("Cannot continue building ShaderAsset because 1 error(s) reported"); AZ::RPI::ShaderAssetCreator creator; BeginCreatingTestShaderAsset(creator, @@ -1216,6 +1216,7 @@ namespace UnitTest { ErrorMessageFinder messageFinder("fragment function but no vertex function"); messageFinder.AddExpectedErrorMessage("Invalid root variant"); + messageFinder.AddExpectedErrorMessage("Cannot continue building ShaderAsset because 1 error(s) reported"); AZ::RPI::ShaderAssetCreator creator; BeginCreatingTestShaderAsset(creator, {AZ::RHI::ShaderStage::Fragment}); @@ -1231,6 +1232,7 @@ namespace UnitTest { ErrorMessageFinder messageFinder("tessellation function but no vertex function"); messageFinder.AddExpectedErrorMessage("Invalid root variant"); + messageFinder.AddExpectedErrorMessage("Cannot continue building ShaderAsset because 1 error(s) reported"); AZ::RPI::ShaderAssetCreator creator; BeginCreatingTestShaderAsset(creator, { AZ::RHI::ShaderStage::Tessellation }); @@ -1264,56 +1266,7 @@ namespace UnitTest AZ_TEST_START_TRACE_SUPPRESSION; Data::Asset shaderAsset = CreateShaderAsset(); - AZ_TEST_STOP_TRACE_SUPPRESSION(1); - - EXPECT_FALSE(shaderAsset); - } - - TEST_F(ShaderTests, ShaderAsset_PipelineLayout_SrgCountMismatch_Test) - { - using namespace AZ; - - m_pipelineLayoutDescriptor->Reset(); - // No SRGs. - m_pipelineLayoutDescriptor->Finalize(); - - AZ_TEST_START_TRACE_SUPPRESSION; - Data::Asset shaderAsset = CreateShaderAsset(); - AZ_TEST_STOP_TRACE_SUPPRESSION(1); - - EXPECT_FALSE(shaderAsset); - } - - TEST_F(ShaderTests, ShaderAsset_PipelineLayout_SrgHashMismatch_Test) - { - using namespace AZ; - - m_pipelineLayoutDescriptor->Reset(); - for (size_t i = 0; i < RHI::Limits::Pipeline::ShaderResourceGroupCountMax; ++i) - { - // Shift SRGs by one. This will make the hashes no longer match. - size_t shiftedIndex = (i + 1) % RHI::Limits::Pipeline::ShaderResourceGroupCountMax; - AZ::RHI::ShaderResourceGroupBindingInfo bindingInfo = CreateShaderResouceGroupBindingInfo(shiftedIndex); - m_pipelineLayoutDescriptor->AddShaderResourceGroupLayoutInfo(*m_srgAssets[shiftedIndex]->GetLayout(), bindingInfo); - } - m_pipelineLayoutDescriptor->Finalize(); - - AZ_TEST_START_TRACE_SUPPRESSION; - Data::Asset shaderAsset = CreateShaderAsset(); - AZ_TEST_STOP_TRACE_SUPPRESSION(1); - - EXPECT_FALSE(shaderAsset); - } - - TEST_F(ShaderTests, ShaderAsset_ShaderOptionGroupLayout_Missing_Test) - { - using namespace AZ; - - m_shaderOptionGroupLayoutForAsset = nullptr; - - AZ_TEST_START_TRACE_SUPPRESSION; - Data::Asset shaderAsset = CreateShaderAsset(); - AZ_TEST_STOP_TRACE_SUPPRESSION(1); + AZ_TEST_STOP_TRACE_SUPPRESSION(2); EXPECT_FALSE(shaderAsset); } @@ -1861,7 +1814,7 @@ namespace UnitTest Data::Asset shaderVariantAsset; - shaderVariantAsset = CreateTestShaderVariantAsset(shaderOptions.GetShaderVariantId(), RPI::ShaderVariantStableId{0}); + shaderVariantAsset = CreateTestShaderVariantAsset(shaderOptions.GetShaderVariantId(), RPI::ShaderVariantStableId{0}, false); EXPECT_FALSE(shaderVariantAsset->IsFullyBaked()); EXPECT_FALSE(ShaderOptionGroup(m_shaderOptionGroupLayoutForAsset, shaderVariantAsset->GetShaderVariantId()).IsFullySpecified()); @@ -1869,12 +1822,12 @@ namespace UnitTest shaderOptions.SetValue(AZ::Name{"Quality"}, AZ::Name{"Quality::Average"}); shaderOptions.SetValue(AZ::Name{"NumberSamples"}, AZ::Name{"100"}); shaderOptions.SetValue(AZ::Name{"Raytracing"}, AZ::Name{"On"}); - shaderVariantAsset = CreateTestShaderVariantAsset(shaderOptions.GetShaderVariantId(), RPI::ShaderVariantStableId{0}); + shaderVariantAsset = CreateTestShaderVariantAsset(shaderOptions.GetShaderVariantId(), RPI::ShaderVariantStableId{0}, true); EXPECT_TRUE(shaderVariantAsset->IsFullyBaked()); EXPECT_TRUE(ShaderOptionGroup(m_shaderOptionGroupLayoutForAsset, shaderVariantAsset->GetShaderVariantId()).IsFullySpecified()); shaderOptions.ClearValue(AZ::Name{"NumberSamples"}); - shaderVariantAsset = CreateTestShaderVariantAsset(shaderOptions.GetShaderVariantId(), RPI::ShaderVariantStableId{0}); + shaderVariantAsset = CreateTestShaderVariantAsset(shaderOptions.GetShaderVariantId(), RPI::ShaderVariantStableId{0}, false); EXPECT_FALSE(shaderVariantAsset->IsFullyBaked()); EXPECT_FALSE(ShaderOptionGroup(m_shaderOptionGroupLayoutForAsset, shaderVariantAsset->GetShaderVariantId()).IsFullySpecified()); } diff --git a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupAssetTests.cpp b/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupAssetTests.cpp deleted file mode 100644 index 71c7dec396..0000000000 --- a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupAssetTests.cpp +++ /dev/null @@ -1,143 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#include -#include -#include - -#include -#include - -namespace AZ -{ - namespace RPI - { - class ShaderResourceGroupAssetTester - : public UnitTest::SerializeTester - { - using Base = UnitTest::SerializeTester; - public: - ShaderResourceGroupAssetTester(AZ::SerializeContext* serializeContext) - : Base(serializeContext) - {} - - AZ::Data::Asset SerializeInHelper(const AZ::Data::AssetId& assetId) - { - AZ::Data::Asset asset = Base::SerializeIn(assetId); - asset->FinalizeAfterLoad(); - asset->SetReady(); - return asset; - } - }; - } -} - -namespace UnitTest -{ - using namespace AZ; - using namespace AZ::RPI; - - class ShaderResourceGroupAssetTests - : public RPITestFixture - { - protected: - Data::Asset CreateBasicSrgAsset(const Data::AssetId& assetId) - { - ShaderResourceGroupAssetCreator creator; - creator.Begin(assetId, Name("Foo")); - creator.BeginAPI(RHI::Factory::Get().GetType()); - - creator.SetBindingSlot(2); - creator.AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{"MyBuffer"}, RHI::ShaderInputBufferAccess::ReadWrite, RHI::ShaderInputBufferType::Raw, 1, 4, 1 }); - creator.AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImage" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 2 }); - creator.AddShaderInput(RHI::ShaderInputSamplerDescriptor{ Name{ "MySampler" }, 1, 3 }); - creator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{"MyFloat"}, 0, sizeof(float), 0 }); - creator.AddStaticSampler(RHI::ShaderInputStaticSamplerDescriptor{ Name("MyStaticSampler"), RHI::SamplerState::Create(RHI::FilterMode::Linear, RHI::FilterMode::Point, RHI::AddressMode::Wrap), 4 }); - - Data::Asset srgAsset; - EXPECT_TRUE(creator.EndAPI()); - EXPECT_TRUE(creator.End(srgAsset)); - - return srgAsset; - } - }; - - TEST_F(ShaderResourceGroupAssetTests, Error_Empty) - { - AZ_TEST_START_ASSERTTEST; - - ShaderResourceGroupAssetCreator creator; - creator.Begin(Uuid::CreateRandom(), Name("Foo")); - creator.BeginAPI(RHI::Factory::Get().GetType()); - - Data::Asset srgAsset; - EXPECT_FALSE(creator.EndAPI()); - EXPECT_FALSE(creator.End(srgAsset)); - - AZ_TEST_STOP_ASSERTTEST(2); - } - - TEST_F(ShaderResourceGroupAssetTests, Basic) - { - Data::AssetId assetId(Uuid::CreateRandom()); - Data::Asset srgAsset = CreateBasicSrgAsset(assetId); - - EXPECT_EQ(assetId, srgAsset->GetId()); - EXPECT_EQ(Name("Foo"), srgAsset->GetName()); - EXPECT_EQ(Data::AssetData::AssetStatus::Ready, srgAsset->GetStatus()); - EXPECT_EQ(2, srgAsset->GetLayout()->GetBindingSlot()); - EXPECT_TRUE(srgAsset->GetLayout()->FindShaderInputBufferIndex(Name{ "MyBuffer" }).IsValid()); - EXPECT_TRUE(srgAsset->GetLayout()->FindShaderInputImageIndex(Name{ "MyImage" }).IsValid()); - EXPECT_TRUE(srgAsset->GetLayout()->FindShaderInputSamplerIndex(Name{ "MySampler" }).IsValid()); - EXPECT_TRUE(srgAsset->GetLayout()->FindShaderInputConstantIndex(Name{ "MyFloat" }).IsValid()); - EXPECT_EQ(1, srgAsset->GetLayout()->GetStaticSamplers().size()); - } - - TEST_F(ShaderResourceGroupAssetTests, Serialization) - { - Data::AssetId assetId(Uuid::CreateRandom()); - Data::Asset srgAsset = CreateBasicSrgAsset(assetId); - - RPI::ShaderResourceGroupAssetTester tester(GetSerializeContext()); - tester.SerializeOut(srgAsset.Get()); - Data::Asset serializedSrgAsset = tester.SerializeInHelper(Data::AssetId(Uuid::CreateRandom())); - - EXPECT_EQ(serializedSrgAsset->GetName(), srgAsset->GetName()); - // We don't need to check the entire layout reflection as that should be tested where ShaderResourceGroupLayout is tested. - EXPECT_EQ(serializedSrgAsset->GetLayout()->GetShaderInput(RHI::ShaderInputBufferIndex { 0 }).m_name, srgAsset->GetLayout()->GetShaderInput(RHI::ShaderInputBufferIndex { 0 }).m_name); - EXPECT_EQ(serializedSrgAsset->GetLayout()->GetShaderInput(RHI::ShaderInputImageIndex { 0 }).m_name, srgAsset->GetLayout()->GetShaderInput(RHI::ShaderInputImageIndex { 0 }).m_name); - EXPECT_EQ(serializedSrgAsset->GetLayout()->GetShaderInput(RHI::ShaderInputSamplerIndex { 0 }).m_name, srgAsset->GetLayout()->GetShaderInput(RHI::ShaderInputSamplerIndex { 0 }).m_name); - EXPECT_EQ(serializedSrgAsset->GetLayout()->GetShaderInput(RHI::ShaderInputConstantIndex{ 0 }).m_name, srgAsset->GetLayout()->GetShaderInput(RHI::ShaderInputConstantIndex{ 0 }).m_name); - } - - TEST_F(ShaderResourceGroupAssetTests, Error_NoBegin) - { - Data::AssetId assetId(Uuid::CreateRandom()); - - AZ_TEST_START_ASSERTTEST; - - ShaderResourceGroupAssetCreator creator; - - creator.SetBindingSlot(2); - creator.AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBuffer" }, RHI::ShaderInputBufferAccess::ReadWrite, RHI::ShaderInputBufferType::Raw, 1, 4, 1 }); - creator.AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImage" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 2 }); - creator.AddShaderInput(RHI::ShaderInputSamplerDescriptor{ Name{ "MySampler" }, 1, 3 }); - creator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "MyFloat" }, 0, sizeof(float), 0 }); - creator.AddStaticSampler(RHI::ShaderInputStaticSamplerDescriptor{ Name("MyStaticSampler"), RHI::SamplerState::Create(RHI::FilterMode::Linear, RHI::FilterMode::Point, RHI::AddressMode::Wrap), 4 }); - - Data::Asset srgAsset; - EXPECT_FALSE(creator.End(srgAsset)); - - AZ_TEST_STOP_ASSERTTEST(7); - } -} - diff --git a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupBufferTests.cpp b/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupBufferTests.cpp index 03bc4ad41e..64883944db 100644 --- a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupBufferTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupBufferTests.cpp @@ -12,9 +12,9 @@ #include #include +#include #include -#include #include #include #include @@ -28,7 +28,8 @@ namespace UnitTest : public RPITestFixture { protected: - Data::Asset m_testSrgAsset; + Data::Asset m_testSrgShaderAsset; + RHI::Ptr m_testSrgLayout; Data::Instance m_testSrg; Data::Asset m_bufferPoolAsset; Data::Asset m_shortBufferAsset; @@ -47,21 +48,18 @@ namespace UnitTest const RHI::ShaderInputBufferIndex m_indexOfBufferArray{ 2 }; const RHI::ShaderInputBufferIndex m_indexOfBufferInvalid{ 3 }; - Data::Asset CreateTestSrgAsset(const char* nameId) + RHI::Ptr CreateTestSrgLayout(const char* nameId) { - Data::Asset asset; - ShaderResourceGroupAssetCreator srgCreator; + RHI::Ptr srgLayout = RHI::ShaderResourceGroupLayout::Create(); - srgCreator.Begin(Uuid::CreateRandom(), Name(nameId)); - srgCreator.BeginAPI(RHI::Factory::Get().GetType()); - srgCreator.SetBindingSlot(0); - srgCreator.AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferA" }, RHI::ShaderInputBufferAccess::Read, RHI::ShaderInputBufferType::Raw, 1, 4, 1 }); - srgCreator.AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferB" }, RHI::ShaderInputBufferAccess::Read, RHI::ShaderInputBufferType::Raw, 1, 4, 2 }); - srgCreator.AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferArray" }, RHI::ShaderInputBufferAccess::Read, RHI::ShaderInputBufferType::Raw, 3, 4, 3 }); - srgCreator.EndAPI(); - srgCreator.End(asset); + srgLayout->SetName(Name(nameId)); + srgLayout->SetBindingSlot(0); + srgLayout->AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferA" }, RHI::ShaderInputBufferAccess::Read, RHI::ShaderInputBufferType::Raw, 1, 4, 1 }); + srgLayout->AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferB" }, RHI::ShaderInputBufferAccess::Read, RHI::ShaderInputBufferType::Raw, 1, 4, 2 }); + srgLayout->AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferArray" }, RHI::ShaderInputBufferAccess::Read, RHI::ShaderInputBufferType::Raw, 3, 4, 3 }); + srgLayout->Finalize(); - return asset; + return srgLayout; } Data::Asset CreateTestBufferPoolAsset() @@ -101,8 +99,9 @@ namespace UnitTest { RPITestFixture::SetUp(); - m_testSrgAsset = CreateTestSrgAsset("TestSrg"); - m_testSrg = ShaderResourceGroup::Create(m_testSrgAsset); + m_testSrgLayout = CreateTestSrgLayout("TestSrg"); + m_testSrgShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testSrgLayout); + m_testSrg = ShaderResourceGroup::Create(m_testSrgShaderAsset, AZ::RPI::DefaultSupervariantIndex, m_testSrgLayout->GetName()); m_bufferPoolAsset = CreateTestBufferPoolAsset(); m_shortBufferAsset = CreateTestBufferAsset("Short"); @@ -123,8 +122,9 @@ namespace UnitTest void TearDown() override { + m_testSrgLayout = nullptr; m_testSrg = nullptr; - m_testSrgAsset.Reset(); + m_testSrgShaderAsset.Reset(); m_shortBufferAsset.Reset(); m_mediumBufferAsset.Reset(); m_longBufferAsset.Reset(); @@ -198,7 +198,7 @@ namespace UnitTest // Test changing back to null... - ProcessQueuedSrgCompilations(m_testSrgAsset); + ProcessQueuedSrgCompilations(m_testSrgShaderAsset, m_testSrgLayout->GetName()); EXPECT_TRUE(m_testSrg->SetBuffer(m_indexOfBufferA, nullptr)); m_testSrg->Compile(); @@ -224,7 +224,7 @@ namespace UnitTest // Test changing back to null... - ProcessQueuedSrgCompilations(m_testSrgAsset); + ProcessQueuedSrgCompilations(m_testSrgShaderAsset, m_testSrgLayout->GetName()); EXPECT_TRUE(m_testSrg->SetBuffer(m_indexOfBufferArray, nullptr, 1)); m_testSrg->Compile(); @@ -252,7 +252,7 @@ namespace UnitTest // Test replacing just two buffers including changing one buffer back to null... - ProcessQueuedSrgCompilations(m_testSrgAsset); + ProcessQueuedSrgCompilations(m_testSrgShaderAsset, m_testSrgLayout->GetName()); AZStd::vector> alternateBuffers = { m_mediumBuffer, nullptr }; @@ -398,7 +398,7 @@ namespace UnitTest // Test replacing just two buffer views including changing one back to null... - ProcessQueuedSrgCompilations(m_testSrgAsset); + ProcessQueuedSrgCompilations(m_testSrgShaderAsset, m_testSrgLayout->GetName()); AZStd::vector alternateBufferViews = { m_bufferViewB.get(), nullptr }; diff --git a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupConstantBufferTests.cpp b/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupConstantBufferTests.cpp index 5712ce765c..6875f0aa33 100644 --- a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupConstantBufferTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupConstantBufferTests.cpp @@ -12,9 +12,7 @@ #include #include - -#include -#include +#include #include namespace UnitTest @@ -36,7 +34,8 @@ namespace UnitTest uint32_t m_uint = 0; }; - AZ::Data::Asset m_srgAsset; + AZ::Data::Asset m_shaderAsset; + AZ::RHI::Ptr m_srgLayout; AZ::Data::Instance m_srg; void SetUp() override @@ -44,17 +43,19 @@ namespace UnitTest RPITestFixture::SetUp(); // This provides the high-level metadata and low-level srg layout - m_srgAsset = BuildSrgAssetWithShaderConstants(); - ASSERT_TRUE(m_srgAsset.IsReady()); + m_srgLayout = BuildSrgLayoutWithShaderConstants(m_shaderAsset); + ASSERT_TRUE(m_srgLayout); + ASSERT_TRUE(m_shaderAsset.IsReady()); - m_srg = AZ::RPI::ShaderResourceGroup::Create(m_srgAsset); + m_srg = AZ::RPI::ShaderResourceGroup::Create(m_shaderAsset, AZ::RPI::DefaultSupervariantIndex, m_srgLayout->GetName()); ASSERT_TRUE(m_srg != nullptr); } void TearDown() override { m_srg.reset(); - m_srgAsset.Release(); + m_srgLayout = nullptr; + m_shaderAsset.Release(); RPITestFixture::TearDown(); } @@ -71,13 +72,13 @@ namespace UnitTest } } - AZ::Data::Asset BuildSrgAssetWithShaderConstants([[maybe_unused]] bool includeMetadata = true) + AZ::RHI::Ptr BuildSrgLayoutWithShaderConstants( + AZ::Data::Asset& shaderAsset, [[maybe_unused]] bool includeMetadata = true) { using namespace AZ; - RPI::ShaderResourceGroupAssetCreator srgAssetCreator; - srgAssetCreator.Begin(Uuid::CreateRandom(), Name{"TestSrg"}); - srgAssetCreator.BeginAPI(RHI::Factory::Get().GetType()); + AZ::RHI::Ptr srgLayout = RHI::ShaderResourceGroupLayout::Create(); + srgLayout->SetName(Name{"TestSrg"}); uint32_t offset = 0; uint32_t count; @@ -85,125 +86,125 @@ namespace UnitTest uint32_t registerIndex = 0; uint32_t sizeOfBool = 4; - srgAssetCreator.SetBindingSlot(0); + srgLayout->SetBindingSlot(0); // bool, binding index 0 count = 1; size = count * sizeOfBool; - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyBool"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyBool"), offset, size, registerIndex }); offset += size; // bool2, binding index 1 count = 2; size = count * sizeOfBool; - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyBool2"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyBool2"), offset, size, registerIndex }); offset += size; // bool3, binding index 2 count = 3; size = count * sizeOfBool; - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyBool3"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyBool3"), offset, size, registerIndex }); offset += size; // bool4, binding index 3 count = 4; size = count * sizeOfBool; - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyBool4"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyBool4"), offset, size, registerIndex }); offset += size; // int, binding index 4 count = 1; size = count * sizeof(int32_t); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyInt"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyInt"), offset, size, registerIndex }); offset += size; // int2, binding index 5 count = 2; size = count * sizeof(int32_t); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyInt2"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyInt2"), offset, size, registerIndex }); offset += size; // int3, binding index 6 count = 3; size = count * sizeof(int32_t); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyInt3"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyInt3"), offset, size, registerIndex }); offset += size; // int4, binding index 7 count = 4; size = count * sizeof(int32_t); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyInt4"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyInt4"), offset, size, registerIndex }); offset += size; // uint, binding index 8 count = 1; size = count * sizeof(uint32_t); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyUint"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyUint"), offset, size, registerIndex }); offset += size; // uint2, binding index 9 count = 2; size = count * sizeof(uint32_t); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyUint2"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyUint2"), offset, size, registerIndex }); offset += size; // uint3, binding index 10 count = 3; size = count * sizeof(uint32_t); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyUint3"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyUint3"), offset, size, registerIndex }); offset += size; // uint4, binding index 11 count = 4; size = count * sizeof(uint32_t); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyUint4"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyUint4"), offset, size, registerIndex }); offset += size; // float, binding index 12 count = 1; size = count * sizeof(float); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyFloat"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyFloat"), offset, size, registerIndex }); offset += size; // float2, binding index 13 count = 2; size = count * sizeof(float); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyFloat2"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyFloat2"), offset, size, registerIndex }); offset += size; // float3, binding index 14 count = 3; size = count * sizeof(float); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyFloat3"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyFloat3"), offset, size, registerIndex }); offset += size; // float4, binding index 15 count = 4; size = count * sizeof(float); - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyFloat4"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MyFloat4"), offset, size, registerIndex }); offset += size; // simple struct, binding index 16 // [GFX TODO][ATOM-111] This is not very fleshed out right now. We still need to do more to support structs, but at least I want to verify that SRG templatized setters and getters can work with structs count = 1; size = 8; - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MySimpleStruct"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MySimpleStruct"), offset, size, registerIndex }); offset += size; // array of 2 simple structs, binding index 17 // [GFX TODO][ATOM-111] This is not very fleshed out right now. We still need to do more to support structs, but at least I want to verify that SRG templatized setters and getters can work with structs count = 2; size = 16; - srgAssetCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MySimpleStructArray2"), offset, size, registerIndex }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{Name("MySimpleStructArray2"), offset, size, registerIndex }); offset += size; - srgAssetCreator.SetBindingSlot(0); + srgLayout->SetBindingSlot(0); - Data::Asset srgAsset; - EXPECT_TRUE(srgAssetCreator.EndAPI()); - EXPECT_TRUE(srgAssetCreator.End(srgAsset)); + EXPECT_TRUE(srgLayout->Finalize()); - return srgAsset; + shaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), srgLayout); + + return srgLayout; } }; diff --git a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupGeneralTests.cpp b/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupGeneralTests.cpp index 8bdc3a5165..c584d217e8 100644 --- a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupGeneralTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupGeneralTests.cpp @@ -12,9 +12,9 @@ #include #include +#include #include -#include namespace UnitTest { @@ -25,73 +25,67 @@ namespace UnitTest : public RPITestFixture { protected: - Data::Asset m_testSrgAsset; + RHI::Ptr m_testSrgLayout; + Data::Asset m_testShaderAsset; - Data::Asset CreateTestSrgAsset(const char* nameId) + RHI::Ptr CreateTestSrgLayout(const char* nameId) { - Data::Asset asset; - ShaderResourceGroupAssetCreator srgCreator; + RHI::Ptr srgLayout = RHI::ShaderResourceGroupLayout::Create(); - srgCreator.Begin(Uuid::CreateRandom(), Name(nameId)); - srgCreator.BeginAPI(RHI::Factory::Get().GetType()); - srgCreator.SetBindingSlot(0); - srgCreator.AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferA" }, RHI::ShaderInputBufferAccess::ReadWrite, RHI::ShaderInputBufferType::Raw, 1, 4, 1 }); - srgCreator.AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferB" }, RHI::ShaderInputBufferAccess::ReadWrite, RHI::ShaderInputBufferType::Raw, 1, 4, 2 }); - srgCreator.AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageA" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 3 }); - srgCreator.AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageB" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 4 }); - srgCreator.AddShaderInput(RHI::ShaderInputSamplerDescriptor{ Name{ "MySamplerA" }, 1, 5 }); - srgCreator.AddShaderInput(RHI::ShaderInputSamplerDescriptor{ Name{ "MySamplerB" }, 1, 6 }); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "MyFloatA" }, 0, 4, 0 }); - srgCreator.AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "MyFloatB" }, 4, 4, 0 }); - srgCreator.EndAPI(); - srgCreator.End(asset); + srgLayout->SetName(Name(nameId)); + srgLayout->SetBindingSlot(0); + srgLayout->AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferA" }, RHI::ShaderInputBufferAccess::ReadWrite, RHI::ShaderInputBufferType::Raw, 1, 4, 1 }); + srgLayout->AddShaderInput(RHI::ShaderInputBufferDescriptor{ Name{ "MyBufferB" }, RHI::ShaderInputBufferAccess::ReadWrite, RHI::ShaderInputBufferType::Raw, 1, 4, 2 }); + srgLayout->AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageA" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 3 }); + srgLayout->AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageB" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 4 }); + srgLayout->AddShaderInput(RHI::ShaderInputSamplerDescriptor{ Name{ "MySamplerA" }, 1, 5 }); + srgLayout->AddShaderInput(RHI::ShaderInputSamplerDescriptor{ Name{ "MySamplerB" }, 1, 6 }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "MyFloatA" }, 0, 4, 0 }); + srgLayout->AddShaderInput(RHI::ShaderInputConstantDescriptor{ Name{ "MyFloatB" }, 4, 4, 0 }); + srgLayout->Finalize(); - return asset; + return srgLayout; } void SetUp() override { RPITestFixture::SetUp(); - m_testSrgAsset = CreateTestSrgAsset("TestSrg"); + m_testSrgLayout = CreateTestSrgLayout("TestSrg"); + m_testShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testSrgLayout); } void TearDown() override { - m_testSrgAsset.Reset(); + m_testSrgLayout = nullptr; + m_testShaderAsset.Reset(); RPITestFixture::TearDown(); } }; - TEST_F(ShaderResourceGroupGeneralTests, TestCreateVsFindOrCreate) + TEST_F(ShaderResourceGroupGeneralTests, TestCreate) { - Data::Instance srgInstance1 = ShaderResourceGroup::FindOrCreate(m_testSrgAsset); - Data::Instance srgInstance2 = ShaderResourceGroup::FindOrCreate(m_testSrgAsset); - Data::Instance srgInstance3 = ShaderResourceGroup::Create(m_testSrgAsset); - Data::Instance srgInstance4 = ShaderResourceGroup::Create(m_testSrgAsset); + Data::Instance srgInstance3 = ShaderResourceGroup::Create(m_testShaderAsset, AZ::RPI::DefaultSupervariantIndex, m_testSrgLayout->GetName()); + Data::Instance srgInstance4 = ShaderResourceGroup::Create(m_testShaderAsset, AZ::RPI::DefaultSupervariantIndex, m_testSrgLayout->GetName()); - EXPECT_TRUE(srgInstance1); - EXPECT_TRUE(srgInstance2); EXPECT_TRUE(srgInstance3); EXPECT_TRUE(srgInstance4); - // Instances created via FindOrCreate should be the same object + // Instances created via Create should be the same object - EXPECT_EQ(srgInstance1, srgInstance2); - EXPECT_NE(srgInstance1, srgInstance3); - EXPECT_NE(srgInstance1, srgInstance4); EXPECT_NE(srgInstance3, srgInstance4); } TEST_F(ShaderResourceGroupGeneralTests, TestResourcePool) { - Data::Instance srgA_instance1 = ShaderResourceGroup::Create(m_testSrgAsset); - Data::Instance srgA_instance2 = ShaderResourceGroup::Create(m_testSrgAsset); + Data::Instance srgA_instance1 = ShaderResourceGroup::Create(m_testShaderAsset, AZ::RPI::DefaultSupervariantIndex, m_testSrgLayout->GetName()); + Data::Instance srgA_instance2 = ShaderResourceGroup::Create(m_testShaderAsset, AZ::RPI::DefaultSupervariantIndex, m_testSrgLayout->GetName()); - Data::Asset srgAssetB = CreateTestSrgAsset("TestSrgB"); - Data::Instance srgB_instance1 = ShaderResourceGroup::Create(srgAssetB); - Data::Instance srgB_instance2 = ShaderResourceGroup::Create(srgAssetB); + auto srgLayoutB = CreateTestSrgLayout("TestSrgB"); + auto shaderAssetB = CreateTestShaderAsset(Uuid::CreateRandom(), srgLayoutB); + Data::Instance srgB_instance1 = ShaderResourceGroup::Create(shaderAssetB, AZ::RPI::DefaultSupervariantIndex, srgLayoutB->GetName()); + Data::Instance srgB_instance2 = ShaderResourceGroup::Create(shaderAssetB, AZ::RPI::DefaultSupervariantIndex, srgLayoutB->GetName()); // All instances based on the same asset should have the same pool @@ -106,7 +100,7 @@ namespace UnitTest TEST_F(ShaderResourceGroupGeneralTests, TestLayoutWrapperFunctions) { - Data::Instance testSrg = ShaderResourceGroup::Create(m_testSrgAsset); + Data::Instance testSrg = ShaderResourceGroup::Create(m_testShaderAsset, AZ::RPI::DefaultSupervariantIndex, m_testSrgLayout->GetName()); EXPECT_TRUE(testSrg->GetLayout()); EXPECT_EQ(testSrg->FindShaderInputBufferIndex(Name{ "MyBufferA" }), testSrg->GetLayout()->FindShaderInputBufferIndex(Name{ "MyBufferA" })); diff --git a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupImageTests.cpp b/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupImageTests.cpp index 57fa88d5a2..1e95bceec4 100644 --- a/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupImageTests.cpp +++ b/Gems/Atom/RPI/Code/Tests/ShaderResourceGroup/ShaderResourceGroupImageTests.cpp @@ -12,9 +12,9 @@ #include #include +#include #include -#include namespace UnitTest { @@ -25,7 +25,8 @@ namespace UnitTest : public RPITestFixture { protected: - Data::Asset m_testSrgAsset; + RHI::Ptr m_testSrgLayout; + Data::Asset m_testShaderAsset; Data::Instance m_testSrg; Data::Instance m_whiteImage; Data::Instance m_blackImage; @@ -40,29 +41,27 @@ namespace UnitTest const RHI::ShaderInputImageIndex m_indexImageArray{ 2 }; const RHI::ShaderInputImageIndex m_indexImageInvalid{ 3 }; - Data::Asset CreateTestSrgAsset(const char* nameId) + RHI::Ptr CreateTestSrgLayout(const char* nameId) { - Data::Asset asset; - ShaderResourceGroupAssetCreator srgCreator; + RHI::Ptr srgLayout = RHI::ShaderResourceGroupLayout::Create(); - srgCreator.Begin(Uuid::CreateRandom(), Name(nameId)); - srgCreator.BeginAPI(RHI::Factory::Get().GetType()); - srgCreator.SetBindingSlot(0); - srgCreator.AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageA" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 1 }); - srgCreator.AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageB" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 2 }); - srgCreator.AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageArray" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 3, 3 }); - srgCreator.EndAPI(); - srgCreator.End(asset); + srgLayout->SetName(Name(nameId)); + srgLayout->SetBindingSlot(0); + srgLayout->AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageA" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 1 }); + srgLayout->AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageB" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 1, 2 }); + srgLayout->AddShaderInput(RHI::ShaderInputImageDescriptor{ Name{ "MyImageArray" }, RHI::ShaderInputImageAccess::Read, RHI::ShaderInputImageType::Image2D, 3, 3 }); + srgLayout->Finalize(); - return asset; + return srgLayout; } void SetUp() override { RPITestFixture::SetUp(); - m_testSrgAsset = CreateTestSrgAsset("TestSrg"); - m_testSrg = ShaderResourceGroup::Create(m_testSrgAsset); + m_testSrgLayout = CreateTestSrgLayout("TestSrg"); + m_testShaderAsset = CreateTestShaderAsset(Uuid::CreateRandom(), m_testSrgLayout); + m_testSrg = ShaderResourceGroup::Create(m_testShaderAsset, AZ::RPI::DefaultSupervariantIndex, m_testSrgLayout->GetName()); m_whiteImage = RPI::ImageSystemInterface::Get()->GetSystemImage(RPI::SystemImage::White); m_blackImage = RPI::ImageSystemInterface::Get()->GetSystemImage(RPI::SystemImage::Black); @@ -84,7 +83,8 @@ namespace UnitTest void TearDown() override { - m_testSrgAsset.Reset(); + m_testShaderAsset.Reset(); + m_testSrgLayout = nullptr; m_testSrg = nullptr; m_threeImages = AZStd::vector>(); @@ -155,7 +155,7 @@ namespace UnitTest // Test changing back to null... - ProcessQueuedSrgCompilations(m_testSrgAsset); + ProcessQueuedSrgCompilations(m_testShaderAsset, m_testSrgLayout->GetName()); EXPECT_TRUE(m_testSrg->SetImage(m_indexImageA, nullptr)); m_testSrg->Compile(); @@ -181,7 +181,7 @@ namespace UnitTest // Test changing back to null... - ProcessQueuedSrgCompilations(m_testSrgAsset); + ProcessQueuedSrgCompilations(m_testShaderAsset, m_testSrgLayout->GetName()); EXPECT_TRUE(m_testSrg->SetImage(m_indexImageArray, nullptr, 1)); m_testSrg->Compile(); @@ -209,7 +209,7 @@ namespace UnitTest // Test replacing just two images including changing one image back to null... - ProcessQueuedSrgCompilations(m_testSrgAsset); + ProcessQueuedSrgCompilations(m_testShaderAsset, m_testSrgLayout->GetName()); AZStd::vector> alternateImages = { m_blackImage, nullptr }; @@ -355,7 +355,7 @@ namespace UnitTest // Test replacing just two image views including changing one back to null... - ProcessQueuedSrgCompilations(m_testSrgAsset); + ProcessQueuedSrgCompilations(m_testShaderAsset, m_testSrgLayout->GetName()); AZStd::vector alternateImageViews = { m_imageViewB.get(), nullptr }; diff --git a/Gems/Atom/RPI/Code/atom_rpi_edit_files.cmake b/Gems/Atom/RPI/Code/atom_rpi_edit_files.cmake index 2fcae8be90..a8d3a0230d 100644 --- a/Gems/Atom/RPI/Code/atom_rpi_edit_files.cmake +++ b/Gems/Atom/RPI/Code/atom_rpi_edit_files.cmake @@ -35,7 +35,6 @@ set(FILES Include/Atom/RPI.Edit/Shader/ShaderSourceData.h Include/Atom/RPI.Edit/Shader/ShaderVariantListSourceData.h Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator.h - Include/Atom/RPI.Edit/Shader/ShaderVariantAssetCreator2.h Include/Atom/RPI.Edit/Shader/ShaderVariantTreeAssetCreator.h Source/RPI.Edit/Material/LuaMaterialFunctorSourceData.cpp Source/RPI.Edit/Material/MaterialTypeSourceData.cpp @@ -53,7 +52,6 @@ set(FILES Source/RPI.Edit/Shader/ShaderSourceData.cpp Source/RPI.Edit/Shader/ShaderVariantListSourceData.cpp Source/RPI.Edit/Shader/ShaderVariantAssetCreator.cpp - Source/RPI.Edit/Shader/ShaderVariantAssetCreator2.cpp Source/RPI.Edit/Shader/ShaderVariantTreeAssetCreator.cpp Source/RPI.Edit/Common/AssetUtils.cpp Source/RPI.Edit/Common/AssetAliasesSourceData.cpp diff --git a/Gems/Atom/RPI/Code/atom_rpi_public_files.cmake b/Gems/Atom/RPI/Code/atom_rpi_public_files.cmake index a1d98bbd38..6461edd291 100644 --- a/Gems/Atom/RPI/Code/atom_rpi_public_files.cmake +++ b/Gems/Atom/RPI/Code/atom_rpi_public_files.cmake @@ -82,11 +82,8 @@ set(FILES Include/Atom/RPI.Public/Pass/Specific/SelectorPass.h Include/Atom/RPI.Public/Pass/Specific/SwapChainPass.h Include/Atom/RPI.Public/Shader/Shader.h - Include/Atom/RPI.Public/Shader/Shader2.h Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus.h - Include/Atom/RPI.Public/Shader/ShaderReloadNotificationBus2.h Include/Atom/RPI.Public/Shader/ShaderVariant.h - Include/Atom/RPI.Public/Shader/ShaderVariant2.h Include/Atom/RPI.Public/Shader/ShaderReloadDebugTracker.h Include/Atom/RPI.Public/Shader/ShaderResourceGroup.h Include/Atom/RPI.Public/Shader/ShaderResourceGroupPool.h @@ -160,9 +157,7 @@ set(FILES Source/RPI.Public/Pass/Specific/SelectorPass.cpp Source/RPI.Public/Pass/Specific/SwapChainPass.cpp Source/RPI.Public/Shader/Shader.cpp - Source/RPI.Public/Shader/Shader2.cpp Source/RPI.Public/Shader/ShaderVariant.cpp - Source/RPI.Public/Shader/ShaderVariant2.cpp Source/RPI.Public/Shader/ShaderReloadDebugTracker.cpp Source/RPI.Public/Shader/ShaderResourceGroup.cpp Source/RPI.Public/Shader/ShaderResourceGroupPool.cpp diff --git a/Gems/Atom/RPI/Code/atom_rpi_reflect_files.cmake b/Gems/Atom/RPI/Code/atom_rpi_reflect_files.cmake index 3a4e1cacc6..9986f7ebae 100644 --- a/Gems/Atom/RPI/Code/atom_rpi_reflect_files.cmake +++ b/Gems/Atom/RPI/Code/atom_rpi_reflect_files.cmake @@ -79,21 +79,15 @@ set(FILES Include/Atom/RPI.Reflect/Shader/ShaderCommonTypes.h Include/Atom/RPI.Reflect/Shader/ShaderAsset.h Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator.h - Include/Atom/RPI.Reflect/Shader/ShaderAsset2.h - Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator2.h Include/Atom/RPI.Reflect/Shader/ShaderInputContract.h Include/Atom/RPI.Reflect/Shader/ShaderOptionGroup.h Include/Atom/RPI.Reflect/Shader/ShaderOptionGroupLayout.h Include/Atom/RPI.Reflect/Shader/ShaderOutputContract.h Include/Atom/RPI.Reflect/Shader/ShaderOptionTypes.h - Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAsset.h - Include/Atom/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.h Include/Atom/RPI.Reflect/Shader/ShaderVariantKey.h Include/Atom/RPI.Reflect/Shader/ShaderVariantTreeAsset.h Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset.h - Include/Atom/RPI.Reflect/Shader/ShaderVariantAsset2.h Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder.h - Include/Atom/RPI.Reflect/Shader/IShaderVariantFinder2.h Include/Atom/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.h Include/Atom/RPI.Reflect/System/AnyAsset.h Include/Atom/RPI.Reflect/System/AssetAliases.h @@ -155,18 +149,13 @@ set(FILES Source/RPI.Reflect/Shader/ShaderStageType.cpp Source/RPI.Reflect/Shader/ShaderAsset.cpp Source/RPI.Reflect/Shader/ShaderAssetCreator.cpp - Source/RPI.Reflect/Shader/ShaderAsset2.cpp - Source/RPI.Reflect/Shader/ShaderAssetCreator2.cpp Source/RPI.Reflect/Shader/ShaderInputContract.cpp Source/RPI.Reflect/Shader/ShaderOptionGroup.cpp Source/RPI.Reflect/Shader/ShaderOptionGroupLayout.cpp Source/RPI.Reflect/Shader/ShaderOutputContract.cpp - Source/RPI.Reflect/Shader/ShaderResourceGroupAsset.cpp - Source/RPI.Reflect/Shader/ShaderResourceGroupAssetCreator.cpp Source/RPI.Reflect/Shader/ShaderVariantKey.cpp Source/RPI.Reflect/Shader/ShaderVariantTreeAsset.cpp Source/RPI.Reflect/Shader/ShaderVariantAsset.cpp - Source/RPI.Reflect/Shader/ShaderVariantAsset2.cpp Source/RPI.Reflect/Shader/PrecompiledShaderAssetSourceData.cpp Source/RPI.Reflect/System/AnyAsset.cpp Source/RPI.Reflect/System/AssetAliases.cpp diff --git a/Gems/Atom/RPI/Code/atom_rpi_tests_files.cmake b/Gems/Atom/RPI/Code/atom_rpi_tests_files.cmake index 2c8035a68b..a81442f330 100644 --- a/Gems/Atom/RPI/Code/atom_rpi_tests_files.cmake +++ b/Gems/Atom/RPI/Code/atom_rpi_tests_files.cmake @@ -29,6 +29,8 @@ set(FILES Tests/Common/RHI/Factory.h Tests/Common/RHI/Stubs.cpp Tests/Common/RHI/Stubs.h + Tests/Common/ShaderAssetTestUtils.cpp + Tests/Common/ShaderAssetTestUtils.h Tests/Image/StreamingImageTests.cpp Tests/Material/LuaMaterialFunctorTests.cpp Tests/Material/MaterialTypeAssetTests.cpp @@ -45,7 +47,6 @@ set(FILES Tests/Model/ModelTests.cpp Tests/Pass/PassTests.cpp Tests/Shader/ShaderTests.cpp - Tests/ShaderResourceGroup/ShaderResourceGroupAssetTests.cpp Tests/ShaderResourceGroup/ShaderResourceGroupBufferTests.cpp Tests/ShaderResourceGroup/ShaderResourceGroupConstantBufferTests.cpp Tests/ShaderResourceGroup/ShaderResourceGroupImageTests.cpp diff --git a/Gems/AtomLyIntegration/AtomBridge/Code/Source/Editor/AssetCollectionAsyncLoaderTestComponent.cpp b/Gems/AtomLyIntegration/AtomBridge/Code/Source/Editor/AssetCollectionAsyncLoaderTestComponent.cpp index 0f73828186..4ab24dac92 100644 --- a/Gems/AtomLyIntegration/AtomBridge/Code/Source/Editor/AssetCollectionAsyncLoaderTestComponent.cpp +++ b/Gems/AtomLyIntegration/AtomBridge/Code/Source/Editor/AssetCollectionAsyncLoaderTestComponent.cpp @@ -23,7 +23,6 @@ #include #include #include -#include namespace AZ { @@ -162,10 +161,6 @@ namespace AZ { return azrtti_typeid(); } - else if (extension == "azsrg") - { - return azrtti_typeid(); - } AZ_Error(AssetCollectionAsyncLoaderTestComponentName, false, "Do not know the asset type for file: %s", assetPath.c_str()); return {}; @@ -269,12 +264,6 @@ namespace AZ auto asset = m_assetCollectionAsyncLoader->GetAsset(assetPath); return (bool)asset && asset.GetId().IsValid() && asset.IsReady() && asset->GetTotalImageDataSize(); } - else if (assetType == azrtti_typeid()) - { - auto asset = m_assetCollectionAsyncLoader->GetAsset(assetPath); - return (bool)asset && asset.GetId().IsValid() && asset.IsReady() && !asset->GetName().IsEmpty(); - } - AZ_Error(AssetCollectionAsyncLoaderTestComponentName, false, "Can not handle asset type for assetPath: %s", assetPath.c_str()); return false; diff --git a/Gems/LyShine/Code/Source/Draw2d.cpp b/Gems/LyShine/Code/Source/Draw2d.cpp index 6feb47419d..527f7980cc 100644 --- a/Gems/LyShine/Code/Source/Draw2d.cpp +++ b/Gems/LyShine/Code/Source/Draw2d.cpp @@ -123,7 +123,7 @@ void CDraw2d::OnBootstrapSceneReady([[maybe_unused]] AZ::RPI::Scene* bootstrapSc static const char textureIndexName[] = "m_texture"; static const char worldToProjIndexName[] = "m_worldToProj"; AZ::Data::Instance drawSrg = m_dynamicDraw->NewDrawSrg(); - const AZ::RHI::ShaderResourceGroupLayout* layout = drawSrg->GetAsset()->GetLayout(); + const AZ::RHI::ShaderResourceGroupLayout* layout = drawSrg->GetLayout(); m_shaderData.m_imageInputIndex = layout->FindShaderInputImageIndex(AZ::Name(textureIndexName)); AZ_Error("Draw2d", m_shaderData.m_imageInputIndex.IsValid(), "Failed to find shader input constant %s.", textureIndexName); diff --git a/Gems/LyShine/Code/Source/UiRenderer.cpp b/Gems/LyShine/Code/Source/UiRenderer.cpp index 57acbed5d5..6971aa3fc9 100644 --- a/Gems/LyShine/Code/Source/UiRenderer.cpp +++ b/Gems/LyShine/Code/Source/UiRenderer.cpp @@ -151,7 +151,7 @@ void UiRenderer::CacheShaderData(const AZ::RHI::Ptr static const char worldToProjIndexName[] = "m_worldToProj"; static const char isClampIndexName[] = "m_isClamp"; AZ::Data::Instance drawSrg = dynamicDraw->NewDrawSrg(); - const AZ::RHI::ShaderResourceGroupLayout* layout = drawSrg->GetAsset()->GetLayout(); + const AZ::RHI::ShaderResourceGroupLayout* layout = drawSrg->GetLayout(); m_uiShaderData.m_imageInputIndex = layout->FindShaderInputImageIndex(AZ::Name(textureIndexName)); AZ_Error(LogName, m_uiShaderData.m_imageInputIndex.IsValid(), "Failed to find shader input constant %s.", textureIndexName); diff --git a/Registry/AssetProcessorPlatformConfig.setreg b/Registry/AssetProcessorPlatformConfig.setreg index 2147842da7..0e91bec8a7 100644 --- a/Registry/AssetProcessorPlatformConfig.setreg +++ b/Registry/AssetProcessorPlatformConfig.setreg @@ -471,17 +471,11 @@ "params": "copy", "productAssetType": "{F3BE5CAB-85B7-44B7-9495-863863F6B267}" }, - // Precompiled shader srg - "RC azsrg": { - "glob": "*.azsrg", - "params": "copy", - "productAssetType": "{F8C9F4AE-3F6A-45AD-B4FB-0CA415FCC2E1}" - }, // Precompiled shader variant "RC azshadervariant": { "glob": "*.azshadervariant", "params": "copy", - "productAssetType": "{9F4D654B-4439-4C61-8DCD-F1C7C5560768}" + "productAssetType": "{51BED815-36D8-410E-90F0-1FA9FF765FBA}" } } }