diff options
-rw-r--r-- | include/gpu/GrBufferAccess.h | 8 | ||||
-rw-r--r-- | src/gpu/gl/GrGLCaps.cpp | 2 | ||||
-rw-r--r-- | src/gpu/gl/GrGLGpu.cpp | 20 | ||||
-rw-r--r-- | src/gpu/gl/GrGLGpu.h | 4 | ||||
-rw-r--r-- | src/gpu/gl/GrGLProgram.cpp | 2 |
5 files changed, 10 insertions, 26 deletions
diff --git a/include/gpu/GrBufferAccess.h b/include/gpu/GrBufferAccess.h index 183d43d670..a5d8f0a684 100644 --- a/include/gpu/GrBufferAccess.h +++ b/include/gpu/GrBufferAccess.h @@ -20,24 +20,21 @@ public: /** * Must be initialized before adding to a GrProcessor's buffer access list. */ - void reset(intptr_t offsetInBytes, GrPixelConfig texelConfig, GrBuffer* buffer, + void reset(GrPixelConfig texelConfig, GrBuffer* buffer, GrShaderFlags visibility = kFragment_GrShaderFlag) { - fOffsetInBytes = offsetInBytes; fTexelConfig = texelConfig; fBuffer.set(SkRef(buffer), kRead_GrIOType); fVisibility = visibility; } bool operator==(const GrBufferAccess& that) const { - return fOffsetInBytes == that.fOffsetInBytes && - fTexelConfig == that.fTexelConfig && + return fTexelConfig == that.fTexelConfig && this->buffer() == that.buffer() && fVisibility == that.fVisibility; } bool operator!=(const GrBufferAccess& that) const { return !(*this == that); } - intptr_t offsetInBytes() const { return fOffsetInBytes; } GrPixelConfig texelConfig() const { return fTexelConfig; } GrBuffer* buffer() const { return fBuffer.get(); } GrShaderFlags visibility() const { return fVisibility; } @@ -48,7 +45,6 @@ public: const GrGpuResourceRef* getProgramBuffer() const { return &fBuffer;} private: - intptr_t fOffsetInBytes; GrPixelConfig fTexelConfig; GrTGpuResourceRef<GrBuffer> fBuffer; GrShaderFlags fVisibility; diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index 9aae7e5aef..14c03d70a7 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -758,7 +758,7 @@ void GrGLCaps::initGLSL(const GrGLContextInfo& ctxInfo) { if (glslCaps->fTexelFetchSupport) { if (kGL_GrGLStandard == standard) { - glslCaps->fTexelBufferSupport = ctxInfo.version() >= GR_GL_VER(4, 3) && + glslCaps->fTexelBufferSupport = ctxInfo.version() >= GR_GL_VER(3, 1) && ctxInfo.glslGeneration() >= k330_GrGLSLGeneration; } else { if (ctxInfo.version() >= GR_GL_VER(3, 2) && diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp index fe32556823..8aec4d684d 100644 --- a/src/gpu/gl/GrGLGpu.cpp +++ b/src/gpu/gl/GrGLGpu.cpp @@ -3248,11 +3248,9 @@ void GrGLGpu::bindTexture(int unitIdx, const GrTextureParams& params, bool allow texture->setCachedTexParams(newTexParams, this->getResetTimestamp()); } -void GrGLGpu::bindTexelBuffer(int unitIdx, intptr_t offsetInBytes, GrPixelConfig texelConfig, - GrGLBuffer* buffer) { +void GrGLGpu::bindTexelBuffer(int unitIdx, GrPixelConfig texelConfig, GrGLBuffer* buffer) { SkASSERT(this->glCaps().canUseConfigWithTexelBuffer(texelConfig)); SkASSERT(unitIdx >= 0 && unitIdx < fHWBufferTextures.count()); - SkASSERT(offsetInBytes >= 0 && offsetInBytes < (intptr_t) buffer->glSizeInBytes()); BufferTexture& buffTex = fHWBufferTextures[unitIdx]; @@ -3271,22 +3269,14 @@ void GrGLGpu::bindTexelBuffer(int unitIdx, intptr_t offsetInBytes, GrPixelConfig } if (buffer->getUniqueID() != buffTex.fAttachedBufferUniqueID || - buffTex.fOffsetInBytes != offsetInBytes || - buffTex.fTexelConfig != texelConfig || - buffTex.fAttachedSizeInBytes != buffer->glSizeInBytes() - offsetInBytes) { - - size_t attachmentSizeInBytes = buffer->glSizeInBytes() - offsetInBytes; + buffTex.fTexelConfig != texelConfig) { this->setTextureUnit(unitIdx); - GL_CALL(TexBufferRange(GR_GL_TEXTURE_BUFFER, - this->glCaps().configSizedInternalFormat(texelConfig), - buffer->bufferID(), - offsetInBytes, - attachmentSizeInBytes)); + GL_CALL(TexBuffer(GR_GL_TEXTURE_BUFFER, + this->glCaps().configSizedInternalFormat(texelConfig), + buffer->bufferID())); - buffTex.fOffsetInBytes = offsetInBytes; buffTex.fTexelConfig = texelConfig; - buffTex.fAttachedSizeInBytes = attachmentSizeInBytes; buffTex.fAttachedBufferUniqueID = buffer->getUniqueID(); if (this->glCaps().textureSwizzleSupport() && diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h index 06d4bd357b..e2e27d586a 100644 --- a/src/gpu/gl/GrGLGpu.h +++ b/src/gpu/gl/GrGLGpu.h @@ -60,7 +60,7 @@ public: void bindTexture(int unitIdx, const GrTextureParams& params, bool allowSRGBInputs, GrGLTexture* texture); - void bindTexelBuffer(int unitIdx, intptr_t offsetInBytes, GrPixelConfig, GrGLBuffer*); + void bindTexelBuffer(int unitIdx, GrPixelConfig, GrGLBuffer*); void generateMipmaps(const GrTextureParams& params, bool allowSRGBInputs, GrGLTexture* texture); @@ -514,9 +514,7 @@ private: GrGLuint fTextureID; bool fKnownBound; - intptr_t fOffsetInBytes; GrPixelConfig fTexelConfig; - size_t fAttachedSizeInBytes; uint32_t fAttachedBufferUniqueID; GrSwizzle fSwizzle; }; diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp index 040c57de3a..a87aa5ad5f 100644 --- a/src/gpu/gl/GrGLProgram.cpp +++ b/src/gpu/gl/GrGLProgram.cpp @@ -159,7 +159,7 @@ void GrGLProgram::bindTextures(const GrProcessor& processor, } for (int i = 0; i < processor.numBuffers(); ++i) { const GrBufferAccess& access = processor.bufferAccess(i); - fGpu->bindTexelBuffer((*nextSamplerIdx)++, access.offsetInBytes(), access.texelConfig(), + fGpu->bindTexelBuffer((*nextSamplerIdx)++, access.texelConfig(), static_cast<GrGLBuffer*>(access.buffer())); } } |