| Index: src/gpu/vk/GrVkCommandBuffer.h
|
| diff --git a/src/gpu/vk/GrVkCommandBuffer.h b/src/gpu/vk/GrVkCommandBuffer.h
|
| index 5cdb2c0b2f7cd6b4173c56416d0fd6b9632f1ba6..de60a449434fd1ffafcb59b158bdbf44218a902d 100644
|
| --- a/src/gpu/vk/GrVkCommandBuffer.h
|
| +++ b/src/gpu/vk/GrVkCommandBuffer.h
|
| @@ -9,11 +9,11 @@
|
| #define GrVkCommandBuffer_DEFINED
|
|
|
| #include "GrVkGpu.h"
|
| -#include "GrVkPipeline.h"
|
| #include "GrVkResource.h"
|
| #include "GrVkUtil.h"
|
| #include "vulkan/vulkan.h"
|
|
|
| +class GrVkPipeline;
|
| class GrVkRenderPass;
|
| class GrVkRenderTarget;
|
| class GrVkTransferBuffer;
|
| @@ -39,15 +39,6 @@ public:
|
| bool finished(const GrVkGpu* gpu) const;
|
|
|
| ////////////////////////////////////////////////////////////////////////////
|
| - // CommandBuffer State/Object bindings
|
| - ////////////////////////////////////////////////////////////////////////////
|
| -#if 0
|
| - void bindPipeline(const GrVkGpu* gpu) const;
|
| - void bindDynamicState(const GrVkGpu* gpu) const;
|
| - void bindDescriptorSet(const GrVkGpu* gpu) const;
|
| -#endif
|
| -
|
| - ////////////////////////////////////////////////////////////////////////////
|
| // CommandBuffer commands
|
| ////////////////////////////////////////////////////////////////////////////
|
| enum BarrierType {
|
| @@ -91,13 +82,6 @@ public:
|
| }
|
| }
|
|
|
| - void bindPipeline(const GrVkGpu* gpu, const GrVkPipeline* pipeline) {
|
| - GR_VK_CALL(gpu->vkInterface(), CmdBindPipeline(fCmdBuffer,
|
| - VK_PIPELINE_BIND_POINT_GRAPHICS,
|
| - pipeline->pipeline()));
|
| - addResource(pipeline);
|
| - }
|
| -
|
| void bindDescriptorSets(const GrVkGpu* gpu,
|
| GrVkProgram*,
|
| VkPipelineLayout layout,
|
| @@ -106,6 +90,18 @@ public:
|
| const VkDescriptorSet* descriptorSets,
|
| uint32_t dynamicOffsetCount,
|
| const uint32_t* dynamicOffsets);
|
| +
|
| + void setViewport(const GrVkGpu* gpu,
|
| + uint32_t firstViewport,
|
| + uint32_t viewportCount,
|
| + const VkViewport* viewports);
|
| +
|
| + void setScissor(const GrVkGpu* gpu,
|
| + uint32_t firstScissor,
|
| + uint32_t scissorCount,
|
| + const VkRect2D* scissors);
|
| +
|
| + void setBlendConstants(const GrVkGpu* gpu, const float blendConstants[4]);
|
|
|
| // Commands that only work outside of a render pass
|
| void clearColorImage(const GrVkGpu* gpu,
|
| @@ -149,6 +145,9 @@ public:
|
| int numRects,
|
| const VkClearRect* clearRects) const;
|
|
|
| + void bindPipeline(const GrVkGpu* gpu, const GrVkPipeline* pipeline);
|
| +
|
| +
|
| void drawIndexed(const GrVkGpu* gpu,
|
| uint32_t indexCount,
|
| uint32_t instanceCount,
|
| @@ -205,6 +204,11 @@ private:
|
| // A nullptr means there is no active render pass. The GrVKCommandBuffer does not own the render
|
| // pass.
|
| const GrVkRenderPass* fActiveRenderPass;
|
| +
|
| + // Cached values used for dynamic state updates
|
| + VkViewport fCachedViewport;
|
| + VkRect2D fCachedScissor;
|
| + float fCachedBlendConstant[4];
|
| };
|
|
|
|
|
|
|