| Index: src/gpu/GrBufferAllocPool.cpp
|
| diff --git a/src/gpu/GrBufferAllocPool.cpp b/src/gpu/GrBufferAllocPool.cpp
|
| index 73b70bf86148b028bacbe02dde6ab5cb623b60b4..ac34b5cfcc1d1d53221ff4cd2b9f299475ba4900 100644
|
| --- a/src/gpu/GrBufferAllocPool.cpp
|
| +++ b/src/gpu/GrBufferAllocPool.cpp
|
| @@ -8,13 +8,12 @@
|
|
|
|
|
| #include "GrBufferAllocPool.h"
|
| +#include "GrBuffer.h"
|
| #include "GrCaps.h"
|
| #include "GrContext.h"
|
| #include "GrGpu.h"
|
| -#include "GrIndexBuffer.h"
|
| #include "GrResourceProvider.h"
|
| #include "GrTypes.h"
|
| -#include "GrVertexBuffer.h"
|
|
|
| #include "SkTraceEvent.h"
|
|
|
| @@ -41,7 +40,7 @@ do {
|
| } while (false)
|
|
|
| GrBufferAllocPool::GrBufferAllocPool(GrGpu* gpu,
|
| - BufferType bufferType,
|
| + GrBufferType bufferType,
|
| size_t blockSize)
|
| : fBlocks(8) {
|
|
|
| @@ -53,12 +52,12 @@ GrBufferAllocPool::GrBufferAllocPool(GrGpu* gpu,
|
|
|
| fBytesInUse = 0;
|
|
|
| - fGeometryBufferMapThreshold = gpu->caps()->geometryBufferMapThreshold();
|
| + fBufferMapThreshold = gpu->caps()->bufferMapThreshold();
|
| }
|
|
|
| void GrBufferAllocPool::deleteBlocks() {
|
| if (fBlocks.count()) {
|
| - GrGeometryBuffer* buffer = fBlocks.back().fBuffer;
|
| + GrBuffer* buffer = fBlocks.back().fBuffer;
|
| if (buffer->isMapped()) {
|
| UNMAP_BUFFER(fBlocks.back());
|
| }
|
| @@ -109,7 +108,7 @@ void GrBufferAllocPool::validate(bool unusedBlockAllowed) const {
|
| if (fBufferPtr) {
|
| SkASSERT(!fBlocks.empty());
|
| if (fBlocks.back().fBuffer->isMapped()) {
|
| - GrGeometryBuffer* buf = fBlocks.back().fBuffer;
|
| + GrBuffer* buf = fBlocks.back().fBuffer;
|
| SkASSERT(buf->mapPtr() == fBufferPtr);
|
| } else {
|
| SkASSERT(fCpuData == fBufferPtr);
|
| @@ -145,7 +144,7 @@ void GrBufferAllocPool::validate(bool unusedBlockAllowed) const {
|
|
|
| void* GrBufferAllocPool::makeSpace(size_t size,
|
| size_t alignment,
|
| - const GrGeometryBuffer** buffer,
|
| + const GrBuffer** buffer,
|
| size_t* offset) {
|
| VALIDATE();
|
|
|
| @@ -252,7 +251,7 @@ bool GrBufferAllocPool::createBlock(size_t requestSize) {
|
| // threshold.
|
| bool attemptMap = block.fBuffer->isCPUBacked();
|
| if (!attemptMap && GrCaps::kNone_MapFlags != fGpu->caps()->mapBufferFlags()) {
|
| - attemptMap = size > fGeometryBufferMapThreshold;
|
| + attemptMap = size > fBufferMapThreshold;
|
| }
|
|
|
| if (attemptMap) {
|
| @@ -295,7 +294,7 @@ void* GrBufferAllocPool::resetCpuData(size_t newSize) {
|
|
|
|
|
| void GrBufferAllocPool::flushCpuData(const BufferBlock& block, size_t flushSize) {
|
| - GrGeometryBuffer* buffer = block.fBuffer;
|
| + GrBuffer* buffer = block.fBuffer;
|
| SkASSERT(buffer);
|
| SkASSERT(!buffer->isMapped());
|
| SkASSERT(fCpuData == fBufferPtr);
|
| @@ -303,7 +302,7 @@ void GrBufferAllocPool::flushCpuData(const BufferBlock& block, size_t flushSize)
|
| VALIDATE(true);
|
|
|
| if (GrCaps::kNone_MapFlags != fGpu->caps()->mapBufferFlags() &&
|
| - flushSize > fGeometryBufferMapThreshold) {
|
| + flushSize > fBufferMapThreshold) {
|
| void* data = buffer->map();
|
| if (data) {
|
| memcpy(data, fBufferPtr, flushSize);
|
| @@ -315,30 +314,24 @@ void GrBufferAllocPool::flushCpuData(const BufferBlock& block, size_t flushSize)
|
| VALIDATE(true);
|
| }
|
|
|
| -GrGeometryBuffer* GrBufferAllocPool::getBuffer(size_t size) {
|
| +GrBuffer* GrBufferAllocPool::getBuffer(size_t size) {
|
|
|
| GrResourceProvider* rp = fGpu->getContext()->resourceProvider();
|
|
|
| - static const GrResourceProvider::BufferUsage kUsage = GrResourceProvider::kDynamic_BufferUsage;
|
| // Shouldn't have to use this flag (https://bug.skia.org/4156)
|
| static const uint32_t kFlags = GrResourceProvider::kNoPendingIO_Flag;
|
| - if (kIndex_BufferType == fBufferType) {
|
| - return rp->createIndexBuffer(size, kUsage, kFlags);
|
| - } else {
|
| - SkASSERT(kVertex_BufferType == fBufferType);
|
| - return rp->createVertexBuffer(size, kUsage, kFlags);
|
| - }
|
| + return rp->createBuffer(fBufferType, size, kDynamic_GrAccessPattern, kFlags);
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|
| GrVertexBufferAllocPool::GrVertexBufferAllocPool(GrGpu* gpu)
|
| - : GrBufferAllocPool(gpu, kVertex_BufferType, MIN_VERTEX_BUFFER_SIZE) {
|
| + : GrBufferAllocPool(gpu, kVertex_GrBufferType, MIN_VERTEX_BUFFER_SIZE) {
|
| }
|
|
|
| void* GrVertexBufferAllocPool::makeSpace(size_t vertexSize,
|
| int vertexCount,
|
| - const GrVertexBuffer** buffer,
|
| + const GrBuffer** buffer,
|
| int* startVertex) {
|
|
|
| SkASSERT(vertexCount >= 0);
|
| @@ -346,13 +339,11 @@ void* GrVertexBufferAllocPool::makeSpace(size_t vertexSize,
|
| SkASSERT(startVertex);
|
|
|
| size_t offset = 0; // assign to suppress warning
|
| - const GrGeometryBuffer* geomBuffer = nullptr; // assign to suppress warning
|
| void* ptr = INHERITED::makeSpace(vertexSize * vertexCount,
|
| vertexSize,
|
| - &geomBuffer,
|
| + buffer,
|
| &offset);
|
|
|
| - *buffer = (const GrVertexBuffer*) geomBuffer;
|
| SkASSERT(0 == offset % vertexSize);
|
| *startVertex = static_cast<int>(offset / vertexSize);
|
| return ptr;
|
| @@ -361,11 +352,11 @@ void* GrVertexBufferAllocPool::makeSpace(size_t vertexSize,
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|
| GrIndexBufferAllocPool::GrIndexBufferAllocPool(GrGpu* gpu)
|
| - : GrBufferAllocPool(gpu, kIndex_BufferType, MIN_INDEX_BUFFER_SIZE) {
|
| + : GrBufferAllocPool(gpu, kIndex_GrBufferType, MIN_INDEX_BUFFER_SIZE) {
|
| }
|
|
|
| void* GrIndexBufferAllocPool::makeSpace(int indexCount,
|
| - const GrIndexBuffer** buffer,
|
| + const GrBuffer** buffer,
|
| int* startIndex) {
|
|
|
| SkASSERT(indexCount >= 0);
|
| @@ -373,13 +364,11 @@ void* GrIndexBufferAllocPool::makeSpace(int indexCount,
|
| SkASSERT(startIndex);
|
|
|
| size_t offset = 0; // assign to suppress warning
|
| - const GrGeometryBuffer* geomBuffer = nullptr; // assign to suppress warning
|
| void* ptr = INHERITED::makeSpace(indexCount * sizeof(uint16_t),
|
| sizeof(uint16_t),
|
| - &geomBuffer,
|
| + buffer,
|
| &offset);
|
|
|
| - *buffer = (const GrIndexBuffer*) geomBuffer;
|
| SkASSERT(0 == offset % sizeof(uint16_t));
|
| *startIndex = static_cast<int>(offset / sizeof(uint16_t));
|
| return ptr;
|
|
|