diff options
author | Jakob Bornecrantz <[email protected]> | 2009-08-28 11:43:19 +0200 |
---|---|---|
committer | Jakob Bornecrantz <[email protected]> | 2009-08-28 12:35:42 +0200 |
commit | 205d344e2a2f0c9ea982b037ab68feab06cbebb1 (patch) | |
tree | cc70601eae0f22819f61fb70306989125be84357 /src/gallium/state_trackers/dri | |
parent | 4322181e6a07ecb8891c2d1ada74fd48c996a8fc (diff) |
Revert "st/xorg/dri: Pass texture formats via the DRI2 protocol flags."
This reverts commit a33e9ea3b9b7ac98d6e9bc385bbbe7eac2eb73d0.
As this change breaks both radeon and nouveau
Diffstat (limited to 'src/gallium/state_trackers/dri')
-rw-r--r-- | src/gallium/state_trackers/dri/dri_drawable.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/gallium/state_trackers/dri/dri_drawable.c b/src/gallium/state_trackers/dri/dri_drawable.c index c092afe56af..200b4bd3766 100644 --- a/src/gallium/state_trackers/dri/dri_drawable.c +++ b/src/gallium/state_trackers/dri/dri_drawable.c @@ -183,25 +183,27 @@ dri_get_buffers(__DRIdrawablePrivate * dPriv) drawable->is_pixmap = dri2_check_if_pixmap(buffers, count); for (i = 0; i < count; i++) { + enum pipe_format format = 0; int index = 0; switch (buffers[i].attachment) { case __DRI_BUFFER_FRONT_LEFT: + continue; case __DRI_BUFFER_FAKE_FRONT_LEFT: index = ST_SURFACE_FRONT_LEFT; - drawable->color_format = buffers[i].flags; + format = drawable->color_format; break; case __DRI_BUFFER_BACK_LEFT: index = ST_SURFACE_BACK_LEFT; - drawable->color_format = buffers[i].flags; + format = drawable->color_format; break; case __DRI_BUFFER_DEPTH: index = ST_SURFACE_DEPTH; - drawable->depth_format = buffers[i].flags; + format = drawable->depth_format; break; case __DRI_BUFFER_STENCIL: index = ST_SURFACE_DEPTH; - drawable->stencil_format = buffers[i].flags; + format = drawable->stencil_format; break; case __DRI_BUFFER_ACCUM: default: @@ -218,7 +220,7 @@ dri_get_buffers(__DRIdrawablePrivate * dPriv) surface = dri_surface_from_handle(api, screen, buffers[i].name, - buffers[i].flags, + format, dri_drawable->w, dri_drawable->h, buffers[i].pitch); @@ -248,7 +250,9 @@ void dri2_set_tex_buffer2(__DRIcontext *pDRICtx, GLint target, st_get_framebuffer_surface(drawable->stfb, ST_SURFACE_FRONT_LEFT, &ps); st_bind_texture_surface(ps, target == GL_TEXTURE_2D ? ST_TEXTURE_2D : - ST_TEXTURE_RECT, 0, drawable->color_format); + ST_TEXTURE_RECT, 0, + format == GLX_TEXTURE_FORMAT_RGBA_EXT ? + PIPE_FORMAT_R8G8B8A8_UNORM : PIPE_FORMAT_R8G8B8X8_UNORM); } void dri2_set_tex_buffer(__DRIcontext *pDRICtx, GLint target, |