mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-14 22:29:15 +01:00
[dxvk] Make suspend parameter of spillRenderPass not optional
This commit is contained in:
parent
aa0296b7ca
commit
bd87c12138
@ -65,7 +65,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
Rc<DxvkCommandList> DxvkContext::endRecording() {
|
Rc<DxvkCommandList> DxvkContext::endRecording() {
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
|
|
||||||
m_sdmaBarriers.recordCommands(m_cmd);
|
m_sdmaBarriers.recordCommands(m_cmd);
|
||||||
m_initBarriers.recordCommands(m_cmd);
|
m_initBarriers.recordCommands(m_cmd);
|
||||||
@ -433,7 +433,7 @@ namespace dxvk {
|
|||||||
const Rc<DxvkImage>& image,
|
const Rc<DxvkImage>& image,
|
||||||
const VkClearColorValue& value,
|
const VkClearColorValue& value,
|
||||||
const VkImageSubresourceRange& subresources) {
|
const VkImageSubresourceRange& subresources) {
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
|
|
||||||
VkImageLayout imageLayoutClear = image->pickLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
|
VkImageLayout imageLayoutClear = image->pickLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
|
||||||
|
|
||||||
@ -463,7 +463,7 @@ namespace dxvk {
|
|||||||
const Rc<DxvkImage>& image,
|
const Rc<DxvkImage>& image,
|
||||||
const VkClearDepthStencilValue& value,
|
const VkClearDepthStencilValue& value,
|
||||||
const VkImageSubresourceRange& subresources) {
|
const VkImageSubresourceRange& subresources) {
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
|
|
||||||
m_execBarriers.recordCommands(m_cmd);
|
m_execBarriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
@ -495,7 +495,7 @@ namespace dxvk {
|
|||||||
void DxvkContext::clearCompressedColorImage(
|
void DxvkContext::clearCompressedColorImage(
|
||||||
const Rc<DxvkImage>& image,
|
const Rc<DxvkImage>& image,
|
||||||
const VkImageSubresourceRange& subresources) {
|
const VkImageSubresourceRange& subresources) {
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
|
|
||||||
// Allocate enough staging buffer memory to fit one
|
// Allocate enough staging buffer memory to fit one
|
||||||
// single subresource, then dispatch multiple copies
|
// single subresource, then dispatch multiple copies
|
||||||
@ -1222,7 +1222,7 @@ namespace dxvk {
|
|||||||
void DxvkContext::discardImage(
|
void DxvkContext::discardImage(
|
||||||
const Rc<DxvkImage>& image,
|
const Rc<DxvkImage>& image,
|
||||||
VkImageSubresourceRange subresources) {
|
VkImageSubresourceRange subresources) {
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
|
|
||||||
if (m_execBarriers.isImageDirty(image, subresources, DxvkAccess::Write))
|
if (m_execBarriers.isImageDirty(image, subresources, DxvkAccess::Write))
|
||||||
m_execBarriers.recordCommands(m_cmd);
|
m_execBarriers.recordCommands(m_cmd);
|
||||||
@ -1455,7 +1455,7 @@ namespace dxvk {
|
|||||||
if (imageView->info().numLevels <= 1)
|
if (imageView->info().numLevels <= 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
|
|
||||||
m_execBarriers.recordCommands(m_cmd);
|
m_execBarriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
@ -1701,7 +1701,7 @@ namespace dxvk {
|
|||||||
const VkImageSubresourceRange& dstSubresources,
|
const VkImageSubresourceRange& dstSubresources,
|
||||||
VkImageLayout srcLayout,
|
VkImageLayout srcLayout,
|
||||||
VkImageLayout dstLayout) {
|
VkImageLayout dstLayout) {
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
|
|
||||||
if (srcLayout != dstLayout) {
|
if (srcLayout != dstLayout) {
|
||||||
m_execBarriers.recordCommands(m_cmd);
|
m_execBarriers.recordCommands(m_cmd);
|
||||||
@ -2660,7 +2660,7 @@ namespace dxvk {
|
|||||||
attachmentIndex = m_state.om.framebuffer->findAttachment(imageView);
|
attachmentIndex = m_state.om.framebuffer->findAttachment(imageView);
|
||||||
|
|
||||||
if (attachmentIndex < 0) {
|
if (attachmentIndex < 0) {
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
|
|
||||||
if (m_execBarriers.isImageDirty(
|
if (m_execBarriers.isImageDirty(
|
||||||
imageView->image(),
|
imageView->image(),
|
||||||
@ -2747,7 +2747,7 @@ namespace dxvk {
|
|||||||
VkOffset3D offset,
|
VkOffset3D offset,
|
||||||
VkExtent3D extent,
|
VkExtent3D extent,
|
||||||
VkClearValue value) {
|
VkClearValue value) {
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
this->unbindComputePipeline();
|
this->unbindComputePipeline();
|
||||||
|
|
||||||
if (m_execBarriers.isImageDirty(
|
if (m_execBarriers.isImageDirty(
|
||||||
@ -4378,7 +4378,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
bool DxvkContext::commitComputeState() {
|
bool DxvkContext::commitComputeState() {
|
||||||
this->spillRenderPass();
|
this->spillRenderPass(false);
|
||||||
|
|
||||||
if (m_flags.test(DxvkContextFlag::CpDirtyPipeline)) {
|
if (m_flags.test(DxvkContextFlag::CpDirtyPipeline)) {
|
||||||
if (unlikely(!this->updateComputePipeline()))
|
if (unlikely(!this->updateComputePipeline()))
|
||||||
|
@ -1102,7 +1102,7 @@ namespace dxvk {
|
|||||||
bool useRenderPass);
|
bool useRenderPass);
|
||||||
|
|
||||||
void startRenderPass();
|
void startRenderPass();
|
||||||
void spillRenderPass(bool suspend = false);
|
void spillRenderPass(bool suspend);
|
||||||
|
|
||||||
void renderPassBindFramebuffer(
|
void renderPassBindFramebuffer(
|
||||||
const Rc<DxvkFramebuffer>& framebuffer,
|
const Rc<DxvkFramebuffer>& framebuffer,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user