Browse Source

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 <emil.l.velikov@gmail.com>
tags/10.4-branchpoint
Alexander von Gluck IV 11 years ago
parent
commit
86d1aa8531
1 changed files with 13 additions and 7 deletions
  1. 13
    7
      src/gallium/targets/haiku-softpipe/GalliumFramebuffer.cpp

+ 13
- 7
src/gallium/targets/haiku-softpipe/GalliumFramebuffer.cpp View File

@@ -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];
}
}
}


Loading…
Cancel
Save