mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-20 01:54:16 +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[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([
|
||||
cClearValue = clearValue,
|
||||
cClearRect = clearRect,
|
||||
cImageView = view
|
||||
] (DxvkContext* ctx) {
|
||||
ctx->clearRenderTarget(
|
||||
cImageView, cClearRect,
|
||||
cImageView,
|
||||
VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
cClearValue);
|
||||
});
|
||||
@ -781,26 +769,15 @@ namespace dxvk {
|
||||
clearValue.depthStencil.depth = Depth;
|
||||
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([
|
||||
cClearValue = clearValue,
|
||||
cClearRect = clearRect,
|
||||
cAspectMask = aspectMask,
|
||||
cImageView = view
|
||||
] (DxvkContext* ctx) {
|
||||
ctx->clearRenderTarget(
|
||||
cImageView, cClearRect,
|
||||
cAspectMask, cClearValue);
|
||||
cImageView,
|
||||
cAspectMask,
|
||||
cClearValue);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -414,7 +414,6 @@ namespace dxvk {
|
||||
|
||||
void DxvkContext::clearRenderTarget(
|
||||
const Rc<DxvkImageView>& imageView,
|
||||
const VkClearRect& clearRect,
|
||||
VkImageAspectFlags clearAspects,
|
||||
const VkClearValue& clearValue) {
|
||||
this->updateFramebuffer();
|
||||
@ -486,6 +485,14 @@ namespace dxvk {
|
||||
clearInfo.colorAttachment = attachmentIndex;
|
||||
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(
|
||||
1, &clearInfo, 1, &clearRect);
|
||||
} else {
|
||||
@ -1681,7 +1688,7 @@ namespace dxvk {
|
||||
m_flags.clr(DxvkContextFlag::GpClearRenderTargets);
|
||||
|
||||
m_barriers.recordCommands(m_cmd);
|
||||
|
||||
|
||||
this->renderPassBindFramebuffer(
|
||||
m_state.om.framebuffer,
|
||||
m_state.om.renderPassOps,
|
||||
|
@ -221,13 +221,11 @@ namespace dxvk {
|
||||
* \brief Clears an active render target
|
||||
*
|
||||
* \param [in] imageView Render target view to clear
|
||||
* \param [in] clearArea Image area to clear
|
||||
* \param [in] clearAspects Image aspects to clear
|
||||
* \param [in] clearValue The clear value
|
||||
*/
|
||||
void clearRenderTarget(
|
||||
const Rc<DxvkImageView>& imageView,
|
||||
const VkClearRect& clearRect,
|
||||
VkImageAspectFlags clearAspects,
|
||||
const VkClearValue& clearValue);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user