mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Remove clear rect parameter from clearRenderTarget
With deferred clears and render target-based clears, this was not properly supported anyway.
This commit is contained in:
parent
04d7f2896a
commit
974db9712b
@ -598,24 +598,12 @@ namespace dxvk {
|
|||||||
clearValue.color.float32[2] = ColorRGBA[2];
|
clearValue.color.float32[2] = ColorRGBA[2];
|
||||||
clearValue.color.float32[3] = ColorRGBA[3];
|
clearValue.color.float32[3] = ColorRGBA[3];
|
||||||
|
|
||||||
VkClearRect clearRect;
|
|
||||||
clearRect.rect.offset.x = 0;
|
|
||||||
clearRect.rect.offset.y = 0;
|
|
||||||
clearRect.rect.extent.width = view->mipLevelExtent(0).width;
|
|
||||||
clearRect.rect.extent.height = view->mipLevelExtent(0).height;
|
|
||||||
clearRect.baseArrayLayer = 0;
|
|
||||||
clearRect.layerCount = view->info().numLayers;
|
|
||||||
|
|
||||||
if (m_parent->GetFeatureLevel() < D3D_FEATURE_LEVEL_10_0)
|
|
||||||
clearRect.layerCount = 1;
|
|
||||||
|
|
||||||
EmitCs([
|
EmitCs([
|
||||||
cClearValue = clearValue,
|
cClearValue = clearValue,
|
||||||
cClearRect = clearRect,
|
|
||||||
cImageView = view
|
cImageView = view
|
||||||
] (DxvkContext* ctx) {
|
] (DxvkContext* ctx) {
|
||||||
ctx->clearRenderTarget(
|
ctx->clearRenderTarget(
|
||||||
cImageView, cClearRect,
|
cImageView,
|
||||||
VK_IMAGE_ASPECT_COLOR_BIT,
|
VK_IMAGE_ASPECT_COLOR_BIT,
|
||||||
cClearValue);
|
cClearValue);
|
||||||
});
|
});
|
||||||
@ -781,26 +769,15 @@ namespace dxvk {
|
|||||||
clearValue.depthStencil.depth = Depth;
|
clearValue.depthStencil.depth = Depth;
|
||||||
clearValue.depthStencil.stencil = Stencil;
|
clearValue.depthStencil.stencil = Stencil;
|
||||||
|
|
||||||
VkClearRect clearRect;
|
|
||||||
clearRect.rect.offset.x = 0;
|
|
||||||
clearRect.rect.offset.y = 0;
|
|
||||||
clearRect.rect.extent.width = view->mipLevelExtent(0).width;
|
|
||||||
clearRect.rect.extent.height = view->mipLevelExtent(0).height;
|
|
||||||
clearRect.baseArrayLayer = 0;
|
|
||||||
clearRect.layerCount = view->info().numLayers;
|
|
||||||
|
|
||||||
if (m_parent->GetFeatureLevel() < D3D_FEATURE_LEVEL_10_0)
|
|
||||||
clearRect.layerCount = 1;
|
|
||||||
|
|
||||||
EmitCs([
|
EmitCs([
|
||||||
cClearValue = clearValue,
|
cClearValue = clearValue,
|
||||||
cClearRect = clearRect,
|
|
||||||
cAspectMask = aspectMask,
|
cAspectMask = aspectMask,
|
||||||
cImageView = view
|
cImageView = view
|
||||||
] (DxvkContext* ctx) {
|
] (DxvkContext* ctx) {
|
||||||
ctx->clearRenderTarget(
|
ctx->clearRenderTarget(
|
||||||
cImageView, cClearRect,
|
cImageView,
|
||||||
cAspectMask, cClearValue);
|
cAspectMask,
|
||||||
|
cClearValue);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,7 +414,6 @@ namespace dxvk {
|
|||||||
|
|
||||||
void DxvkContext::clearRenderTarget(
|
void DxvkContext::clearRenderTarget(
|
||||||
const Rc<DxvkImageView>& imageView,
|
const Rc<DxvkImageView>& imageView,
|
||||||
const VkClearRect& clearRect,
|
|
||||||
VkImageAspectFlags clearAspects,
|
VkImageAspectFlags clearAspects,
|
||||||
const VkClearValue& clearValue) {
|
const VkClearValue& clearValue) {
|
||||||
this->updateFramebuffer();
|
this->updateFramebuffer();
|
||||||
@ -486,6 +485,14 @@ namespace dxvk {
|
|||||||
clearInfo.colorAttachment = attachmentIndex;
|
clearInfo.colorAttachment = attachmentIndex;
|
||||||
clearInfo.clearValue = clearValue;
|
clearInfo.clearValue = clearValue;
|
||||||
|
|
||||||
|
VkClearRect clearRect;
|
||||||
|
clearRect.rect.offset.x = 0;
|
||||||
|
clearRect.rect.offset.y = 0;
|
||||||
|
clearRect.rect.extent.width = imageView->mipLevelExtent(0).width;
|
||||||
|
clearRect.rect.extent.height = imageView->mipLevelExtent(0).height;
|
||||||
|
clearRect.baseArrayLayer = 0;
|
||||||
|
clearRect.layerCount = imageView->info().numLayers;
|
||||||
|
|
||||||
m_cmd->cmdClearAttachments(
|
m_cmd->cmdClearAttachments(
|
||||||
1, &clearInfo, 1, &clearRect);
|
1, &clearInfo, 1, &clearRect);
|
||||||
} else {
|
} else {
|
||||||
@ -1681,7 +1688,7 @@ namespace dxvk {
|
|||||||
m_flags.clr(DxvkContextFlag::GpClearRenderTargets);
|
m_flags.clr(DxvkContextFlag::GpClearRenderTargets);
|
||||||
|
|
||||||
m_barriers.recordCommands(m_cmd);
|
m_barriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
this->renderPassBindFramebuffer(
|
this->renderPassBindFramebuffer(
|
||||||
m_state.om.framebuffer,
|
m_state.om.framebuffer,
|
||||||
m_state.om.renderPassOps,
|
m_state.om.renderPassOps,
|
||||||
|
@ -221,13 +221,11 @@ namespace dxvk {
|
|||||||
* \brief Clears an active render target
|
* \brief Clears an active render target
|
||||||
*
|
*
|
||||||
* \param [in] imageView Render target view to clear
|
* \param [in] imageView Render target view to clear
|
||||||
* \param [in] clearArea Image area to clear
|
|
||||||
* \param [in] clearAspects Image aspects to clear
|
* \param [in] clearAspects Image aspects to clear
|
||||||
* \param [in] clearValue The clear value
|
* \param [in] clearValue The clear value
|
||||||
*/
|
*/
|
||||||
void clearRenderTarget(
|
void clearRenderTarget(
|
||||||
const Rc<DxvkImageView>& imageView,
|
const Rc<DxvkImageView>& imageView,
|
||||||
const VkClearRect& clearRect,
|
|
||||||
VkImageAspectFlags clearAspects,
|
VkImageAspectFlags clearAspects,
|
||||||
const VkClearValue& clearValue);
|
const VkClearValue& clearValue);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user