diff options
author | Ian Romanick <[email protected]> | 2015-11-12 09:26:41 -0800 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2016-02-10 10:59:50 -0800 |
commit | 4087c17832b737951280c7bf1977b589a88ec4cb (patch) | |
tree | f09fba58401721037ab05094614f5f5142e2dc78 | |
parent | 47a5aa4bfa06e891f88e759008ee4e7129387d7e (diff) |
meta/decompress: Track renderbuffer using gl_renderbuffer instead of GL API object handle
Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Anuj Phogat <[email protected]>
-rw-r--r-- | src/mesa/drivers/common/meta.c | 13 | ||||
-rw-r--r-- | src/mesa/drivers/common/meta.h | 3 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index b42a3cf16ae..217d376281f 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -2962,7 +2962,7 @@ meta_decompress_fbo_cleanup(struct decompress_fbo_state *decompress_fbo) { if (decompress_fbo->FBO != 0) { _mesa_DeleteFramebuffers(1, &decompress_fbo->FBO); - _mesa_DeleteRenderbuffers(1, &decompress_fbo->RBO); + _mesa_DeleteRenderbuffers(1, &decompress_fbo->rb->Name); } memset(decompress_fbo, 0, sizeof(*decompress_fbo)); @@ -3065,14 +3065,19 @@ decompress_texture_image(struct gl_context *ctx, /* Create/bind FBO/renderbuffer */ if (decompress_fbo->FBO == 0) { - _mesa_CreateRenderbuffers(1, &decompress_fbo->RBO); + GLuint RBO; + + _mesa_CreateRenderbuffers(1, &RBO); + + decompress_fbo->rb = _mesa_lookup_renderbuffer(ctx, RBO); + assert(decompress_fbo->rb != NULL && decompress_fbo->rb->Name == RBO); _mesa_GenFramebuffers(1, &decompress_fbo->FBO); _mesa_BindFramebuffer(GL_FRAMEBUFFER_EXT, decompress_fbo->FBO); _mesa_FramebufferRenderbuffer(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_EXT, - decompress_fbo->RBO); + decompress_fbo->rb->Name); } else { _mesa_BindFramebuffer(GL_FRAMEBUFFER_EXT, decompress_fbo->FBO); @@ -3080,7 +3085,7 @@ decompress_texture_image(struct gl_context *ctx, /* alloc dest surface */ if (width > decompress_fbo->Width || height > decompress_fbo->Height) { - _mesa_NamedRenderbufferStorage(decompress_fbo->RBO, rbFormat, + _mesa_NamedRenderbufferStorage(decompress_fbo->rb->Name, rbFormat, width, height); status = _mesa_CheckFramebufferStatus(GL_DRAW_FRAMEBUFFER); if (status != GL_FRAMEBUFFER_COMPLETE) { diff --git a/src/mesa/drivers/common/meta.h b/src/mesa/drivers/common/meta.h index 3ff0fdddb59..7a120b6c44b 100644 --- a/src/mesa/drivers/common/meta.h +++ b/src/mesa/drivers/common/meta.h @@ -380,7 +380,8 @@ struct gen_mipmap_state */ struct decompress_fbo_state { - GLuint FBO, RBO; + struct gl_renderbuffer *rb; + GLuint FBO; GLint Width, Height; }; |