Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1969)

Unified Diff: src/gpu/vk/GrVkGpu.cpp

Issue 1825393002: Consolidate GPU buffer implementations (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: gyp Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/gpu/vk/GrVkGpu.cpp
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 96c74ddd5dc1df2217723b50877adb93baec072d..068765db6b86ac1cba7bafffdcf0ba0060a1d620 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -389,18 +389,19 @@ void GrVkGpu::submitCommandBuffer(SyncQueue sync) {
}
///////////////////////////////////////////////////////////////////////////////
-GrVertexBuffer* GrVkGpu::onCreateVertexBuffer(size_t size, bool dynamic) {
- return GrVkVertexBuffer::Create(this, size, dynamic);
-}
-
-GrIndexBuffer* GrVkGpu::onCreateIndexBuffer(size_t size, bool dynamic) {
- return GrVkIndexBuffer::Create(this, size, dynamic);
-}
-
-GrTransferBuffer* GrVkGpu::onCreateTransferBuffer(size_t size, TransferType type) {
- GrVkBuffer::Type bufferType = kCpuToGpu_TransferType ? GrVkBuffer::kCopyRead_Type
- : GrVkBuffer::kCopyWrite_Type;
- return GrVkTransferBuffer::Create(this, size, bufferType);
+GrBuffer* GrVkGpu::onCreateBuffer(GrBufferType type, size_t size, GrAccessPattern accessPattern) {
+ switch (type) {
+ case kVertex_GrBufferType:
+ return GrVkVertexBuffer::Create(this, size, accessPattern);
+ case kIndex_GrBufferType:
+ return GrVkIndexBuffer::Create(this, size, accessPattern);
+ case kXferCpuToGpu_GrBufferType:
+ case kXferGpuToCpu_GrBufferType:
+ return GrVkTransferBuffer::Create(this, size, type);
+ default:
+ SkFAIL("Unknown buffer type.");
+ return nullptr;
+ }
}
////////////////////////////////////////////////////////////////////////////////
@@ -556,7 +557,7 @@ bool GrVkGpu::uploadTexData(GrVkTexture* tex,
GR_VK_CALL(interface, UnmapMemory(fDevice, tex->textureMemory()));
} else {
GrVkTransferBuffer* transferBuffer =
- GrVkTransferBuffer::Create(this, trimRowBytes * height, GrVkBuffer::kCopyRead_Type);
+ GrVkTransferBuffer::Create(this, trimRowBytes * height, kXferCpuToGpu_GrBufferType);
void* mapPtr = transferBuffer->map();
@@ -1441,8 +1442,7 @@ bool GrVkGpu::onReadPixels(GrSurface* surface,
false);
GrVkTransferBuffer* transferBuffer =
- reinterpret_cast<GrVkTransferBuffer*>(this->createTransferBuffer(rowBytes * height,
- kGpuToCpu_TransferType));
+ GrVkTransferBuffer::Create(this, rowBytes * height, kXferGpuToCpu_GrBufferType);
bool flipY = kBottomLeft_GrSurfaceOrigin == surface->origin();
VkOffset3D offset = {

Powered by Google App Engine
This is Rietveld 408576698