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

Unified Diff: src/gpu/gl/GrGLGpu.cpp

Issue 1531013005: Remove dead code for glTexStorage (Closed) Base URL: https://skia.googlesource.com/skia.git@readpixels
Patch Set: Created 5 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/gl/GrGLGpu.cpp
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index de8c45bdfdac379db6b81d4ff4d1e4f83980055b..d180eb7444c646397d3c48f7a125d983e7e13002 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -671,15 +671,12 @@ static inline GrGLenum check_alloc_error(const GrSurfaceDesc& desc,
/**
* Determines if sized internal formats are available for the texture being created.
*
- * @param useTexStorage The result of a call to can_use_tex_storage().
* @param info Info about the GL context.
* @param textureConfig The pixel configuration for the texture being created.
*/
-static bool use_sized_format_for_texture(bool useTexStorage, const GrGLContextInfo& info,
- GrPixelConfig textureConfig) {
- // glTexStorage requires sized internal formats on both desktop and ES. ES2 requires an unsized
- // format for glTexImage, unlike ES3 and desktop.
- bool useSizedFormat = useTexStorage;
+static bool use_sized_format_for_texture(const GrGLContextInfo& info, GrPixelConfig textureConfig) {
+ // ES2 requires an unsized format for glTexImage, unlike ES3 and desktop.
+ bool useSizedFormat = false;
if (kGL_GrGLStandard == info.standard() ||
(info.version() >= GR_GL_VER(3, 0) &&
// ES3 only works with sized BGRA8 format if "GL_APPLE_texture_format_BGRA8888" enabled
@@ -718,25 +715,7 @@ bool GrGLGpu::uploadTexData(const GrSurfaceDesc& desc,
SkAutoSMalloc<128 * 128> tempStorage;
#endif
- // We currently lazily create MIPMAPs when the we see a draw with
- // GrTextureParams::kMipMap_FilterMode. Using texture storage requires that the
- // MIP levels are all created when the texture is created. So for now we don't use
- // texture storage.
- bool useTexStorage = false &&
- isNewTexture &&
- this->glCaps().texStorageSupport();
-
- if (useTexStorage && kGL_GrGLStandard == this->glStandard()) {
- // 565 is not a sized internal format on desktop GL. So on desktop with
- // 565 we always use an unsized internal format to let the system pick
- // the best sized format to convert the 565 data to. Since TexStorage
- // only allows sized internal formats we will instead use TexImage2D.
- useTexStorage = desc.fConfig != kRGB_565_GrPixelConfig;
- }
-
-
- bool useSizedFormat = use_sized_format_for_texture(useTexStorage, this->ctxInfo(),
- desc.fConfig);
+ bool useSizedFormat = use_sized_format_for_texture(this->ctxInfo(), desc.fConfig);
// Internal format comes from the texture desc.
GrGLenum internalFormat = useSizedFormat ?
@@ -799,40 +778,17 @@ bool GrGLGpu::uploadTexData(const GrSurfaceDesc& desc,
GL_CALL(PixelStorei(GR_GL_UNPACK_ALIGNMENT, config_alignment(dataConfig)));
}
bool succeeded = true;
- if (isNewTexture &&
- 0 == left && 0 == top &&
- desc.fWidth == width && desc.fHeight == height) {
- CLEAR_ERROR_BEFORE_ALLOC(this->glInterface());
- if (useTexStorage) {
- // We never resize or change formats of textures.
- GL_ALLOC_CALL(this->glInterface(),
- TexStorage2D(target,
- 1, // levels
- internalFormat,
- desc.fWidth, desc.fHeight));
- } else {
- GL_ALLOC_CALL(this->glInterface(),
- TexImage2D(target,
- 0, // level
- internalFormat,
- desc.fWidth, desc.fHeight,
- 0, // border
- externalFormat, externalType,
- data));
- }
- GrGLenum error = check_alloc_error(desc, this->glInterface());
- if (error != GR_GL_NO_ERROR) {
+ if (isNewTexture) {
+ if (data && !(0 == left && 0 == top && desc.fWidth == width && desc.fHeight == height)) {
succeeded = false;
} else {
- // if we have data and we used TexStorage to create the texture, we
- // now upload with TexSubImage.
- if (data && useTexStorage) {
- GL_CALL(TexSubImage2D(target,
- 0, // level
- left, top,
- width, height,
- externalFormat, externalType,
- data));
+ CLEAR_ERROR_BEFORE_ALLOC(this->glInterface());
+ GL_ALLOC_CALL(this->glInterface(), TexImage2D(target, 0, internalFormat, desc.fWidth,
+ desc.fHeight, 0, externalFormat,
+ externalType, data));
+ GrGLenum error = check_alloc_error(desc, this->glInterface());
+ if (error != GR_GL_NO_ERROR) {
+ succeeded = false;
}
}
} else {
@@ -1287,7 +1243,7 @@ int GrGLGpu::getCompatibleStencilIndex(GrPixelConfig config) {
GrGLenum internalFormat = 0x0; // suppress warning
GrGLenum externalFormat = 0x0; // suppress warning
GrGLenum externalType = 0x0; // suppress warning
- bool useSizedFormat = use_sized_format_for_texture(false, this->ctxInfo(), config);
+ bool useSizedFormat = use_sized_format_for_texture(this->ctxInfo(), config);
if (!this->configToGLFormats(config, useSizedFormat, &internalFormat,
&externalFormat, &externalType)) {
GL_CALL(DeleteTextures(1, &colorID));
@@ -3532,7 +3488,7 @@ GrBackendObject GrGLGpu::createTestingOnlyBackendTexture(void* pixels, int w, in
GrGLenum externalFormat = 0x0; // suppress warning
GrGLenum externalType = 0x0; // suppress warning
- bool useSizedFormat = use_sized_format_for_texture(false, this->ctxInfo(), config);
+ bool useSizedFormat = use_sized_format_for_texture(this->ctxInfo(), config);
this->configToGLFormats(config, useSizedFormat, &internalFormat, &externalFormat,
&externalType);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698