diff --git a/WickedEngine/shaders/filterEnvMapCS.hlsl b/WickedEngine/shaders/filterEnvMapCS.hlsl index c0e580458..519fb7fef 100644 --- a/WickedEngine/shaders/filterEnvMapCS.hlsl +++ b/WickedEngine/shaders/filterEnvMapCS.hlsl @@ -1,6 +1,11 @@ #include "globals.hlsli" #include "ShaderInterop_Renderer.h" +#ifdef __PSSL__ +// TODO: register spilling issue +#pragma warning (disable:7203) +#endif // __PSSL__ + PUSHCONSTANT(push, FilterEnvmapPushConstants); float D_GGX(float NdotH, float roughness) diff --git a/WickedEngine/wiGraphicsDevice_DX12.cpp b/WickedEngine/wiGraphicsDevice_DX12.cpp index 70119fccb..6ca629ca1 100644 --- a/WickedEngine/wiGraphicsDevice_DX12.cpp +++ b/WickedEngine/wiGraphicsDevice_DX12.cpp @@ -1614,6 +1614,10 @@ using namespace dx12_internal; void GraphicsDevice_DX12::CopyAllocator::init(GraphicsDevice_DX12* device) { this->device = device; +#ifdef PLATFORM_XBOX + queue = device->queues[QUEUE_COPY].queue; +#else + // On PC we can create secondary copy queue for background uploading tasks: D3D12_COMMAND_QUEUE_DESC desc = {}; desc.Type = D3D12_COMMAND_LIST_TYPE_COPY; desc.Priority = D3D12_COMMAND_QUEUE_PRIORITY_NORMAL; @@ -1630,6 +1634,7 @@ using namespace dx12_internal; } hr = queue->SetName(L"CopyAllocator"); assert(SUCCEEDED(hr)); +#endif // PLATFORM_XBOX } GraphicsDevice_DX12::CopyAllocator::CopyCMD GraphicsDevice_DX12::CopyAllocator::allocate(uint64_t staging_size) { diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 6ee98e053..5e5961f68 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -3587,19 +3587,22 @@ void UpdatePerFrameData( frameCB.gi_boost = GetGIBoost(); - frameCB.rain_blocker_mad_prev = frameCB.rain_blocker_mad; - frameCB.rain_blocker_matrix_prev = frameCB.rain_blocker_matrix; - frameCB.rain_blocker_matrix_inverse_prev = frameCB.rain_blocker_matrix_inverse; - frameCB.rain_blocker_mad = XMFLOAT4( - float(scene.rain_blocker_dummy_light.shadow_rect.w) / float(shadowMapAtlas.desc.width), - float(scene.rain_blocker_dummy_light.shadow_rect.h) / float(shadowMapAtlas.desc.height), - float(scene.rain_blocker_dummy_light.shadow_rect.x) / float(shadowMapAtlas.desc.width), - float(scene.rain_blocker_dummy_light.shadow_rect.y) / float(shadowMapAtlas.desc.height) - ); - SHCAM shcam; - CreateDirLightShadowCams(vis.scene->rain_blocker_dummy_light, *vis.camera, &shcam, 1); - XMStoreFloat4x4(&frameCB.rain_blocker_matrix, shcam.view_projection); - XMStoreFloat4x4(&frameCB.rain_blocker_matrix_inverse, XMMatrixInverse(nullptr, shcam.view_projection)); + if (scene.weather.rain_amount > 0) + { + frameCB.rain_blocker_mad_prev = frameCB.rain_blocker_mad; + frameCB.rain_blocker_matrix_prev = frameCB.rain_blocker_matrix; + frameCB.rain_blocker_matrix_inverse_prev = frameCB.rain_blocker_matrix_inverse; + frameCB.rain_blocker_mad = XMFLOAT4( + float(scene.rain_blocker_dummy_light.shadow_rect.w) / float(shadowMapAtlas.desc.width), + float(scene.rain_blocker_dummy_light.shadow_rect.h) / float(shadowMapAtlas.desc.height), + float(scene.rain_blocker_dummy_light.shadow_rect.x) / float(shadowMapAtlas.desc.width), + float(scene.rain_blocker_dummy_light.shadow_rect.y) / float(shadowMapAtlas.desc.height) + ); + SHCAM shcam; + CreateDirLightShadowCams(vis.scene->rain_blocker_dummy_light, *vis.camera, &shcam, 1); + XMStoreFloat4x4(&frameCB.rain_blocker_matrix, shcam.view_projection); + XMStoreFloat4x4(&frameCB.rain_blocker_matrix_inverse, XMMatrixInverse(nullptr, shcam.view_projection)); + } frameCB.temporalaa_samplerotation = 0; if (GetTemporalAAEnabled()) diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index 51dc25971..c0c3f9444 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wi::version // minor features, major updates, breaking compatibility changes const int minor = 71; // minor bug fixes, alterations, refactors, updates - const int revision = 323; + const int revision = 324; const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);