diff --git a/src/dxvk/dxvk_barrier.cpp b/src/dxvk/dxvk_barrier.cpp index 52ebc2ee7..7e35f67fe 100644 --- a/src/dxvk/dxvk_barrier.cpp +++ b/src/dxvk/dxvk_barrier.cpp @@ -33,8 +33,7 @@ namespace dxvk { } - void DxvkBarrierSet::recordCommands( - DxvkRecorder& recorder) { + void DxvkBarrierSet::recordCommands(DxvkCommandList& commandList) { if ((m_srcStages | m_dstStages) != 0) { VkPipelineStageFlags srcFlags = m_srcStages; VkPipelineStageFlags dstFlags = m_dstStages; @@ -42,7 +41,7 @@ namespace dxvk { if (srcFlags == 0) srcFlags = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; if (dstFlags == 0) dstFlags = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; - recorder.cmdPipelineBarrier( + commandList.cmdPipelineBarrier( srcFlags, dstFlags, 0, m_memBarriers.size(), m_memBarriers.data(), m_bufBarriers.size(), m_bufBarriers.data(), diff --git a/src/dxvk/dxvk_barrier.h b/src/dxvk/dxvk_barrier.h index b80d60dda..38cfcdaf2 100644 --- a/src/dxvk/dxvk_barrier.h +++ b/src/dxvk/dxvk_barrier.h @@ -1,8 +1,8 @@ #pragma once #include "dxvk_buffer.h" +#include "dxvk_cmdlist.h" #include "dxvk_image.h" -#include "dxvk_recorder.h" namespace dxvk { @@ -28,7 +28,7 @@ namespace dxvk { VkAccessFlags access); void recordCommands( - DxvkRecorder& recorder); + DxvkCommandList& commandList); void reset(); diff --git a/src/dxvk/dxvk_cmdlist.h b/src/dxvk/dxvk_cmdlist.h index 59b946b52..5895cdc2d 100644 --- a/src/dxvk/dxvk_cmdlist.h +++ b/src/dxvk/dxvk_cmdlist.h @@ -4,7 +4,6 @@ #include "dxvk_descriptor.h" #include "dxvk_lifetime.h" -#include "dxvk_recorder.h" namespace dxvk { @@ -17,7 +16,7 @@ namespace dxvk { * When the command list has completed execution, resources that * are no longer used may get destroyed. */ - class DxvkCommandList : public DxvkRecorder { + class DxvkCommandList : public RcObject { public: @@ -40,7 +39,7 @@ namespace dxvk { * Resets the command buffer and * begins command buffer recording. */ - void beginRecording() final; + void beginRecording(); /** * \brief Ends recording @@ -48,7 +47,7 @@ namespace dxvk { * Ends command buffer recording, making * the command list ready for submission. */ - void endRecording() final; + void endRecording(); /** * \brief Adds a resource to track @@ -59,7 +58,7 @@ namespace dxvk { * completed. */ void trackResource( - const Rc& rc) final; + const Rc& rc); /** * \brief Resets the command list @@ -69,72 +68,72 @@ namespace dxvk { * command list to the device, this method will be called once * the command list completes execution. */ - void reset() final; + void reset(); void bindShaderResources( VkPipelineBindPoint pipeline, VkPipelineLayout pipelineLayout, VkDescriptorSetLayout descriptorLayout, uint32_t bindingCount, - const DxvkResourceBinding* bindings) final; + const DxvkResourceBinding* bindings); void cmdBeginRenderPass( const VkRenderPassBeginInfo* pRenderPassBegin, - VkSubpassContents contents) final; + VkSubpassContents contents); void cmdBindIndexBuffer( VkBuffer buffer, VkDeviceSize offset, - VkIndexType indexType) final; + VkIndexType indexType); void cmdBindPipeline( VkPipelineBindPoint pipelineBindPoint, - VkPipeline pipeline) final; + VkPipeline pipeline); void cmdBindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, - const VkDeviceSize* pOffsets) final; + const VkDeviceSize* pOffsets); void cmdClearAttachments( uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, - const VkClearRect* pRects) final; + const VkClearRect* pRects); void cmdClearColorImage( VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, - const VkImageSubresourceRange* pRanges) final; + const VkImageSubresourceRange* pRanges); void cmdCopyBuffer( VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, - const VkBufferCopy* pRegions) final; + const VkBufferCopy* pRegions); void cmdDispatch( uint32_t x, uint32_t y, - uint32_t z) final; + uint32_t z); void cmdDraw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, - uint32_t firstInstance) final; + uint32_t firstInstance); void cmdDrawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, uint32_t vertexOffset, - uint32_t firstInstance) final; + uint32_t firstInstance); - void cmdEndRenderPass() final; + void cmdEndRenderPass(); void cmdPipelineBarrier( VkPipelineStageFlags srcStageMask, @@ -145,17 +144,17 @@ namespace dxvk { uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, - const VkImageMemoryBarrier* pImageMemoryBarriers) final; + const VkImageMemoryBarrier* pImageMemoryBarriers); void cmdSetScissor( uint32_t firstScissor, uint32_t scissorCount, - const VkRect2D* scissors) final; + const VkRect2D* scissors); void cmdSetViewport( uint32_t firstViewport, uint32_t viewportCount, - const VkViewport* viewports) final; + const VkViewport* viewports); private: diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 63f039d5e..894bd4183 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -18,9 +18,8 @@ namespace dxvk { } - void DxvkContext::beginRecording( - const Rc& recorder) { - m_cmd = recorder; + void DxvkContext::beginRecording(const Rc& cmdList) { + m_cmd = cmdList; m_cmd->beginRecording(); // The current state of the internal command buffer is diff --git a/src/dxvk/dxvk_context.h b/src/dxvk/dxvk_context.h index 53a350025..d17a1ac29 100644 --- a/src/dxvk/dxvk_context.h +++ b/src/dxvk/dxvk_context.h @@ -3,7 +3,6 @@ #include "dxvk_barrier.h" #include "dxvk_cmdlist.h" #include "dxvk_context_state.h" -#include "dxvk_deferred.h" #include "dxvk_pipemgr.h" #include "dxvk_util.h" @@ -31,10 +30,10 @@ namespace dxvk { * Begins recording a command list. This does * not alter any context state other than the * active command list. - * \param [in] recorder Target recorder + * \param [in] cmdList Target command list */ void beginRecording( - const Rc& recorder); + const Rc& cmdList); /** * \brief Ends command buffer recording @@ -225,9 +224,9 @@ namespace dxvk { const Rc m_device; const Rc m_pipeMgr; - Rc m_cmd; - DxvkContextState m_state; - DxvkBarrierSet m_barriers; + Rc m_cmd; + DxvkContextState m_state; + DxvkBarrierSet m_barriers; void renderPassBegin(); void renderPassEnd(); diff --git a/src/dxvk/dxvk_deferred.cpp b/src/dxvk/dxvk_deferred.cpp deleted file mode 100644 index 7bd071aee..000000000 --- a/src/dxvk/dxvk_deferred.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "dxvk_deferred.h" - -namespace dxvk { - - DxvkDeferredCommands:: DxvkDeferredCommands() { } - DxvkDeferredCommands::~DxvkDeferredCommands() { } - -} \ No newline at end of file diff --git a/src/dxvk/dxvk_deferred.h b/src/dxvk/dxvk_deferred.h deleted file mode 100644 index f3dd55058..000000000 --- a/src/dxvk/dxvk_deferred.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -#include - -#include "dxvk_lifetime.h" -#include "dxvk_recorder.h" - -namespace dxvk { - - /** - * \brief DXVK deferred command list - * - * Buffers Vulkan commands so that they can be recorded - * into an actual Vulkan command buffer later. This is - * used to implement D3D11 Deferred Contexts, which do - * not map particularly well to Vulkan's command buffers. - */ - class DxvkDeferredCommands : public DxvkRecorder { - - public: - - DxvkDeferredCommands(); - ~DxvkDeferredCommands(); - - }; - -} \ No newline at end of file diff --git a/src/dxvk/dxvk_recorder.cpp b/src/dxvk/dxvk_recorder.cpp deleted file mode 100644 index cb77c0301..000000000 --- a/src/dxvk/dxvk_recorder.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "dxvk_recorder.h" - -namespace dxvk { - - DxvkRecorder::~DxvkRecorder() { - - } - -} \ No newline at end of file diff --git a/src/dxvk/dxvk_recorder.h b/src/dxvk/dxvk_recorder.h deleted file mode 100644 index c4db1878e..000000000 --- a/src/dxvk/dxvk_recorder.h +++ /dev/null @@ -1,119 +0,0 @@ -#pragma once - -#include "dxvk_descriptor.h" -#include "dxvk_lifetime.h" - -namespace dxvk { - - /** - * \brief DXVK command recorder - * - * An interface that wraps Vulkan calls. \ref DxvkCommandList - * implements this interface to record Vulkan commands into a - * primary command buffer, whereas \ref DxvkDeferredCommands - * buffers the calls and provides methods to record them into - * a \ref DxvkCommandList on demand. - */ - class DxvkRecorder : public RcObject { - - public: - - virtual ~DxvkRecorder(); - - virtual void beginRecording() = 0; - virtual void endRecording() = 0; - - virtual void trackResource( - const Rc& rc) = 0; - - virtual void reset() = 0; - - virtual void bindShaderResources( - VkPipelineBindPoint pipeline, - VkPipelineLayout pipelineLayout, - VkDescriptorSetLayout descriptorLayout, - uint32_t bindingCount, - const DxvkResourceBinding* bindings) = 0; - - virtual void cmdBeginRenderPass( - const VkRenderPassBeginInfo* pRenderPassBegin, - VkSubpassContents contents) = 0; - - virtual void cmdBindIndexBuffer( - VkBuffer buffer, - VkDeviceSize offset, - VkIndexType indexType) = 0; - - virtual void cmdBindPipeline( - VkPipelineBindPoint pipelineBindPoint, - VkPipeline pipeline) = 0; - - virtual void cmdBindVertexBuffers( - uint32_t firstBinding, - uint32_t bindingCount, - const VkBuffer* pBuffers, - const VkDeviceSize* pOffsets) = 0; - - virtual void cmdClearAttachments( - uint32_t attachmentCount, - const VkClearAttachment* pAttachments, - uint32_t rectCount, - const VkClearRect* pRects) = 0; - - virtual void cmdClearColorImage( - VkImage image, - VkImageLayout imageLayout, - const VkClearColorValue* pColor, - uint32_t rangeCount, - const VkImageSubresourceRange* pRanges) = 0; - - virtual void cmdCopyBuffer( - VkBuffer srcBuffer, - VkBuffer dstBuffer, - uint32_t regionCount, - const VkBufferCopy* pRegions) = 0; - - virtual void cmdDispatch( - uint32_t x, - uint32_t y, - uint32_t z) = 0; - - virtual void cmdDraw( - uint32_t vertexCount, - uint32_t instanceCount, - uint32_t firstVertex, - uint32_t firstInstance) = 0; - - virtual void cmdDrawIndexed( - uint32_t indexCount, - uint32_t instanceCount, - uint32_t firstIndex, - uint32_t vertexOffset, - uint32_t firstInstance) = 0; - - virtual void cmdEndRenderPass() = 0; - - virtual void cmdPipelineBarrier( - VkPipelineStageFlags srcStageMask, - VkPipelineStageFlags dstStageMask, - VkDependencyFlags dependencyFlags, - uint32_t memoryBarrierCount, - const VkMemoryBarrier* pMemoryBarriers, - uint32_t bufferMemoryBarrierCount, - const VkBufferMemoryBarrier* pBufferMemoryBarriers, - uint32_t imageMemoryBarrierCount, - const VkImageMemoryBarrier* pImageMemoryBarriers) = 0; - - virtual void cmdSetScissor( - uint32_t firstScissor, - uint32_t scissorCount, - const VkRect2D* scissors) = 0; - - virtual void cmdSetViewport( - uint32_t firstViewport, - uint32_t viewportCount, - const VkViewport* viewports) = 0; - - }; - -} \ No newline at end of file diff --git a/src/dxvk/meson.build b/src/dxvk/meson.build index 61fed846f..2bfe63828 100644 --- a/src/dxvk/meson.build +++ b/src/dxvk/meson.build @@ -6,7 +6,6 @@ dxvk_src = files([ 'dxvk_compute.cpp', 'dxvk_constant_state.cpp', 'dxvk_context.cpp', - 'dxvk_deferred.cpp', 'dxvk_descriptor.cpp', 'dxvk_device.cpp', 'dxvk_framebuffer.cpp', @@ -17,7 +16,6 @@ dxvk_src = files([ 'dxvk_main.cpp', 'dxvk_memory.cpp', 'dxvk_pipemgr.cpp', - 'dxvk_recorder.cpp', 'dxvk_renderpass.cpp', 'dxvk_resource.cpp', 'dxvk_shader.cpp',