Merge pull request #1508 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15787
[ATOM-15787] FullscreenTrianglePass incorrectly sets the scissor dimensions
This commit is contained in:
+6
-2
@@ -47,8 +47,12 @@ namespace AZ
|
||||
m_updateSrg = true;
|
||||
}
|
||||
|
||||
params.m_viewportState = RHI::Viewport(0, static_cast<float>(m_imageSize.m_width), 0, static_cast<float>(m_imageSize.m_height));
|
||||
params.m_scissorState = RHI::Scissor(0, 0, m_imageSize.m_width, m_imageSize.m_height);
|
||||
float inverseScale = 1.0f / m_outputScale;
|
||||
uint32_t outputWidth = m_imageSize.m_width * inverseScale;
|
||||
uint32_t outputHeight = m_imageSize.m_height * inverseScale;
|
||||
|
||||
params.m_viewportState = RHI::Viewport(0, static_cast<float>(outputWidth), 0, static_cast<float>(outputHeight));
|
||||
params.m_scissorState = RHI::Scissor(0, 0, outputWidth, outputHeight);
|
||||
|
||||
FullscreenTrianglePass::FrameBeginInternal(params);
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <AzCore/Asset/AssetCommon.h>
|
||||
#include <AzCore/Asset/AssetManagerBus.h>
|
||||
#include <AzCore/std/algorithm.h>
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
@@ -181,19 +182,15 @@ namespace AZ
|
||||
|
||||
RHI::Size targetImageSize = outputAttachment->m_descriptor.m_image.m_size;
|
||||
|
||||
m_viewportState = params.m_viewportState;
|
||||
if (m_viewportState.IsNull())
|
||||
{
|
||||
// compute viewport from target attachment
|
||||
m_viewportState = RHI::Viewport(0, static_cast<float>(targetImageSize.m_width), 0, static_cast<float>(targetImageSize.m_height));
|
||||
}
|
||||
m_viewportState.m_minX = 0.0f;
|
||||
m_viewportState.m_minY = 0.0f;
|
||||
m_viewportState.m_maxX = AZStd::min(static_cast<uint32_t>(params.m_viewportState.m_maxX), targetImageSize.m_width);
|
||||
m_viewportState.m_maxY = AZStd::min(static_cast<uint32_t>(params.m_viewportState.m_maxY), targetImageSize.m_height);
|
||||
|
||||
m_scissorState = params.m_scissorState;
|
||||
if (m_scissorState.IsNull())
|
||||
{
|
||||
// compute scissor from target attachment
|
||||
m_scissorState = RHI::Scissor(0, 0, targetImageSize.m_width, targetImageSize.m_height);
|
||||
}
|
||||
m_scissorState.m_minX = 0.0f;
|
||||
m_scissorState.m_minY = 0.0f;
|
||||
m_scissorState.m_maxX = AZStd::min(static_cast<uint32_t>(params.m_scissorState.m_maxX), targetImageSize.m_width);
|
||||
m_scissorState.m_maxY = AZStd::min(static_cast<uint32_t>(params.m_scissorState.m_maxY), targetImageSize.m_height);
|
||||
|
||||
RenderPass::FrameBeginInternal(params);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user