Remove GrGpuTextureCommandBuffer class and rename to GrOpsRenderPass.
Change-Id: Ia6e666a7bb986bb3dc769d25919580bca17b4748
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/236556
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index 9be58c5..4660793 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -32,7 +32,7 @@
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/gl/GrGLBuffer.h"
#include "src/gpu/gl/GrGLGpu.h"
-#include "src/gpu/gl/GrGLGpuCommandBuffer.h"
+#include "src/gpu/gl/GrGLOpsRenderPass.h"
#include "src/gpu/gl/GrGLSemaphore.h"
#include "src/gpu/gl/GrGLStencilAttachment.h"
#include "src/gpu/gl/GrGLTextureRenderTarget.h"
@@ -2294,25 +2294,16 @@
dstColorType, buffer, rowPixelWidth);
}
-GrGpuRTCommandBuffer* GrGLGpu::getCommandBuffer(
+GrOpsRenderPass* GrGLGpu::getOpsRenderPass(
GrRenderTarget* rt, GrSurfaceOrigin origin, const SkRect& bounds,
- const GrGpuRTCommandBuffer::LoadAndStoreInfo& colorInfo,
- const GrGpuRTCommandBuffer::StencilLoadAndStoreInfo& stencilInfo) {
- if (!fCachedRTCommandBuffer) {
- fCachedRTCommandBuffer.reset(new GrGLGpuRTCommandBuffer(this));
+ const GrOpsRenderPass::LoadAndStoreInfo& colorInfo,
+ const GrOpsRenderPass::StencilLoadAndStoreInfo& stencilInfo) {
+ if (!fCachedOpsRenderPass) {
+ fCachedOpsRenderPass.reset(new GrGLOpsRenderPass(this));
}
- fCachedRTCommandBuffer->set(rt, origin, colorInfo, stencilInfo);
- return fCachedRTCommandBuffer.get();
-}
-
-GrGpuTextureCommandBuffer* GrGLGpu::getCommandBuffer(GrTexture* texture, GrSurfaceOrigin origin) {
- if (!fCachedTexCommandBuffer) {
- fCachedTexCommandBuffer.reset(new GrGLGpuTextureCommandBuffer(this));
- }
-
- fCachedTexCommandBuffer->set(texture, origin);
- return fCachedTexCommandBuffer.get();
+ fCachedOpsRenderPass->set(rt, origin, colorInfo, stencilInfo);
+ return fCachedOpsRenderPass.get();
}
void GrGLGpu::flushRenderTarget(GrGLRenderTarget* target, GrSurfaceOrigin origin,
@@ -4145,14 +4136,10 @@
}
}
-void GrGLGpu::submit(GrGpuCommandBuffer* buffer) {
- if (buffer->asRTCommandBuffer()) {
- SkASSERT(fCachedRTCommandBuffer.get() == buffer);
- fCachedRTCommandBuffer->reset();
- } else {
- SkASSERT(fCachedTexCommandBuffer.get() == buffer);
- fCachedTexCommandBuffer->reset();
- }
+void GrGLGpu::submit(GrOpsRenderPass* renderPass) {
+ // The GrGLOpsRenderPass doesn't buffer ops so there is nothing to do here
+ SkASSERT(fCachedOpsRenderPass.get() == renderPass);
+ fCachedOpsRenderPass->reset();
}
GrFence SK_WARN_UNUSED_RESULT GrGLGpu::insertFence() {
diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h
index 5787096..d274a25 100644
--- a/src/gpu/gl/GrGLGpu.h
+++ b/src/gpu/gl/GrGLGpu.h
@@ -26,8 +26,7 @@
#include "src/gpu/gl/GrGLVertexArray.h"
class GrGLBuffer;
-class GrGLGpuRTCommandBuffer;
-class GrGLGpuTextureCommandBuffer;
+class GrGLOpsRenderPass;
class GrPipeline;
class GrSwizzle;
@@ -77,9 +76,9 @@
// If the caller wishes to bind an index buffer to a specific VAO, it can call glBind directly.
GrGLenum bindBuffer(GrGpuBufferType type, const GrBuffer*);
- // The GrGLGpuRTCommandBuffer does not buffer up draws before submitting them to the gpu.
+ // The GrGLOpsRenderPass does not buffer up draws before submitting them to the gpu.
// Thus this is the implementation of the draw call for the corresponding passthrough function
- // on GrGLRTGpuCommandBuffer.
+ // on GrGLOpsRenderPass.
void draw(GrRenderTarget*, GrSurfaceOrigin,
const GrPrimitiveProcessor&,
const GrPipeline&,
@@ -107,14 +106,14 @@
const GrBuffer* instanceBuffer, int instanceCount,
int baseInstance, GrPrimitiveRestart) final;
- // The GrGLGpuRTCommandBuffer does not buffer up draws before submitting them to the gpu.
+ // The GrGLOpsRenderPass does not buffer up draws before submitting them to the gpu.
// Thus this is the implementation of the clear call for the corresponding passthrough function
- // on GrGLGpuRTCommandBuffer.
+ // on GrGLOpsRenderPass.
void clear(const GrFixedClip&, const SkPMColor4f&, GrRenderTarget*, GrSurfaceOrigin);
- // The GrGLGpuRTCommandBuffer does not buffer up draws before submitting them to the gpu.
+ // The GrGLOpsRenderPass does not buffer up draws before submitting them to the gpu.
// Thus this is the implementation of the clearStencil call for the corresponding passthrough
- // function on GrGLGpuRTCommandBuffer.
+ // function on GrGLOpsrenderPass.
void clearStencilClip(const GrFixedClip&, bool insideStencilMask,
GrRenderTarget*, GrSurfaceOrigin);
@@ -122,12 +121,10 @@
// stencil buffer as not dirty?
void clearStencil(GrRenderTarget*, int clearValue);
- GrGpuRTCommandBuffer* getCommandBuffer(
+ GrOpsRenderPass* getOpsRenderPass(
GrRenderTarget*, GrSurfaceOrigin, const SkRect&,
- const GrGpuRTCommandBuffer::LoadAndStoreInfo&,
- const GrGpuRTCommandBuffer::StencilLoadAndStoreInfo&) override;
-
- GrGpuTextureCommandBuffer* getCommandBuffer(GrTexture*, GrSurfaceOrigin) override;
+ const GrOpsRenderPass::LoadAndStoreInfo&,
+ const GrOpsRenderPass::StencilLoadAndStoreInfo&) override;
void invalidateBoundRenderTarget() {
fHWBoundRenderTargetUniqueID.makeInvalid();
@@ -155,7 +152,7 @@
void testingOnly_flushGpuAndSync() override;
#endif
- void submit(GrGpuCommandBuffer* buffer) override;
+ void submit(GrOpsRenderPass* renderPass) override;
GrFence SK_WARN_UNUSED_RESULT insertFence() override;
bool waitFence(GrFence, uint64_t timeout) override;
@@ -681,8 +678,7 @@
class SamplerObjectCache;
std::unique_ptr<SamplerObjectCache> fSamplerObjectCache;
- std::unique_ptr<GrGLGpuRTCommandBuffer> fCachedRTCommandBuffer;
- std::unique_ptr<GrGLGpuTextureCommandBuffer> fCachedTexCommandBuffer;
+ std::unique_ptr<GrGLOpsRenderPass> fCachedOpsRenderPass;
struct FinishCallback {
GrGpuFinishedProc fCallback;
diff --git a/src/gpu/gl/GrGLGpuCommandBuffer.cpp b/src/gpu/gl/GrGLOpsRenderPass.cpp
similarity index 73%
rename from src/gpu/gl/GrGLGpuCommandBuffer.cpp
rename to src/gpu/gl/GrGLOpsRenderPass.cpp
index 1412aa3..dd24c68 100644
--- a/src/gpu/gl/GrGLGpuCommandBuffer.cpp
+++ b/src/gpu/gl/GrGLOpsRenderPass.cpp
@@ -5,13 +5,13 @@
* found in the LICENSE file.
*/
-#include "src/gpu/gl/GrGLGpuCommandBuffer.h"
+#include "src/gpu/gl/GrGLOpsRenderPass.h"
#include "src/gpu/GrContextPriv.h"
#include "src/gpu/GrFixedClip.h"
#include "src/gpu/GrRenderTargetPriv.h"
-void GrGLGpuRTCommandBuffer::begin() {
+void GrGLOpsRenderPass::begin() {
if (GrLoadOp::kClear == fColorLoadAndStoreInfo.fLoadOp) {
fGpu->clear(GrFixedClip::Disabled(), fColorLoadAndStoreInfo.fClearColor,
fRenderTarget, fOrigin);
@@ -24,9 +24,9 @@
}
}
-void GrGLGpuRTCommandBuffer::set(GrRenderTarget* rt, GrSurfaceOrigin origin,
- const GrGpuRTCommandBuffer::LoadAndStoreInfo& colorInfo,
- const GrGpuRTCommandBuffer::StencilLoadAndStoreInfo& stencilInfo) {
+void GrGLOpsRenderPass::set(GrRenderTarget* rt, GrSurfaceOrigin origin,
+ const GrOpsRenderPass::LoadAndStoreInfo& colorInfo,
+ const GrOpsRenderPass::StencilLoadAndStoreInfo& stencilInfo) {
SkASSERT(fGpu);
SkASSERT(!fRenderTarget);
SkASSERT(fGpu == rt->getContext()->priv().getGpu());
diff --git a/src/gpu/gl/GrGLGpuCommandBuffer.h b/src/gpu/gl/GrGLOpsRenderPass.h
similarity index 65%
rename from src/gpu/gl/GrGLGpuCommandBuffer.h
rename to src/gpu/gl/GrGLOpsRenderPass.h
index 7d61a19..998ef24 100644
--- a/src/gpu/gl/GrGLGpuCommandBuffer.h
+++ b/src/gpu/gl/GrGLOpsRenderPass.h
@@ -5,10 +5,10 @@
* found in the LICENSE file.
*/
-#ifndef GrGLGpuCommandBuffer_DEFINED
-#define GrGLGpuCommandBuffer_DEFINED
+#ifndef GrGLOpsRenderPass_DEFINED
+#define GrGLOpsRenderPass_DEFINED
-#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrOpsRenderPass.h"
#include "src/gpu/GrOpFlushState.h"
#include "src/gpu/gl/GrGLGpu.h"
@@ -17,32 +17,14 @@
class GrGLGpu;
class GrGLRenderTarget;
-class GrGLGpuTextureCommandBuffer : public GrGpuTextureCommandBuffer {
-public:
- GrGLGpuTextureCommandBuffer(GrGLGpu* gpu) : fGpu(gpu) {}
-
- void insertEventMarker(const char* msg) override {
- fGpu->insertEventMarker(msg);
- }
-
- void reset() {
- fTexture = nullptr;
- }
-
-private:
- GrGLGpu* fGpu;
-
- typedef GrGpuTextureCommandBuffer INHERITED;
-};
-
-class GrGLGpuRTCommandBuffer : public GrGpuRTCommandBuffer {
+class GrGLOpsRenderPass : public GrOpsRenderPass {
/**
* We do not actually buffer up draws or do any work in the this class for GL. Instead commands
* are immediately sent to the gpu to execute. Thus all the commands in this class are simply
* pass through functions to corresponding calls in the GrGLGpu class.
*/
public:
- GrGLGpuRTCommandBuffer(GrGLGpu* gpu) : fGpu(gpu) {}
+ GrGLOpsRenderPass(GrGLGpu* gpu) : fGpu(gpu) {}
void begin() override;
void end() override {}
@@ -56,8 +38,8 @@
}
void set(GrRenderTarget*, GrSurfaceOrigin,
- const GrGpuRTCommandBuffer::LoadAndStoreInfo&,
- const GrGpuRTCommandBuffer::StencilLoadAndStoreInfo&);
+ const GrOpsRenderPass::LoadAndStoreInfo&,
+ const GrOpsRenderPass::StencilLoadAndStoreInfo&);
void reset() {
fRenderTarget = nullptr;
@@ -85,11 +67,11 @@
fGpu->clearStencilClip(clip, insideStencilMask, fRenderTarget, fOrigin);
}
- GrGLGpu* fGpu;
- GrGpuRTCommandBuffer::LoadAndStoreInfo fColorLoadAndStoreInfo;
- GrGpuRTCommandBuffer::StencilLoadAndStoreInfo fStencilLoadAndStoreInfo;
+ GrGLGpu* fGpu;
+ GrOpsRenderPass::LoadAndStoreInfo fColorLoadAndStoreInfo;
+ GrOpsRenderPass::StencilLoadAndStoreInfo fStencilLoadAndStoreInfo;
- typedef GrGpuRTCommandBuffer INHERITED;
+ typedef GrOpsRenderPass INHERITED;
};
#endif