* Check for back left attachment as well
* Set and act on pipe format none
---
 .../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 84c8bd2..d6bfdb4 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];
+                       }
                }
        }
 
-- 
1.7.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to