diff options
author | Alexander von Gluck IV <[email protected]> | 2014-08-25 14:32:42 +0000 |
---|---|---|
committer | Alexander von Gluck IV <[email protected]> | 2014-08-28 21:27:26 -0400 |
commit | 86d1aa8531fabb41c32c128305af625458c0fa7f (patch) | |
tree | 0dc5df81c55ac0662a9c2cefe05cec97a5ae8b14 /src/gallium/targets/haiku-softpipe/GalliumFramebuffer.cpp | |
parent | 96b45e67d506a02dd082fe2abf5d016e1fdeb4da (diff) |
gallium/targets: Haiku softpipe, perform better framebuffer validation
* Check for back left attachment as well
* Set and act on pipe format none
Ack'ed by Emil Velikov <[email protected]>
Diffstat (limited to 'src/gallium/targets/haiku-softpipe/GalliumFramebuffer.cpp')
-rw-r--r-- | src/gallium/targets/haiku-softpipe/GalliumFramebuffer.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/gallium/targets/haiku-softpipe/GalliumFramebuffer.cpp b/src/gallium/targets/haiku-softpipe/GalliumFramebuffer.cpp index 84c8bd2baef..d6bfdb41b84 100644 --- a/src/gallium/targets/haiku-softpipe/GalliumFramebuffer.cpp +++ b/src/gallium/targets/haiku-softpipe/GalliumFramebuffer.cpp @@ -100,8 +100,10 @@ hgl_framebuffer_validate(struct st_context_iface* stctx, switch(statts[i]) { case ST_ATTACHMENT_FRONT_LEFT: + case ST_ATTACHMENT_BACK_LEFT: format = context->stVisual->color_format; - bind = PIPE_BIND_RENDER_TARGET; + bind = PIPE_BIND_DISPLAY_TARGET + | PIPE_BIND_RENDER_TARGET; break; case ST_ATTACHMENT_DEPTH_STENCIL: format = context->stVisual->depth_stencil_format; @@ -112,14 +114,18 @@ hgl_framebuffer_validate(struct st_context_iface* stctx, bind = PIPE_BIND_RENDER_TARGET; break; default: - ERROR("%s: Unexpected attachment type!\n", __func__); + format = PIPE_FORMAT_NONE; + break; } - templat.format = format; - templat.bind = bind; - struct pipe_screen* screen = context->manager->screen; - context->textures[i] = screen->resource_create(screen, &templat); - out[i] = context->textures[i]; + if (format != PIPE_FORMAT_NONE) { + templat.format = format; + templat.bind = bind; + + struct pipe_screen* screen = context->manager->screen; + context->textures[i] = screen->resource_create(screen, &templat); + out[i] = context->textures[i]; + } } } |