Mesa (master): st/glx: use PIPE_TEXTURE_RECT if appropriate
Luca Barbieri
lb at kemper.freedesktop.org
Fri Aug 20 10:04:26 UTC 2010
Module: Mesa
Branch: master
Commit: d34f6e9db15a1fa3a7e3b68e47ac4eef2706b8cd
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d34f6e9db15a1fa3a7e3b68e47ac4eef2706b8cd
Author: Luca Barbieri <luca at luca-barbieri.com>
Date: Thu Aug 19 00:55:13 2010 +0200
st/glx: use PIPE_TEXTURE_RECT if appropriate
---
src/gallium/state_trackers/glx/xlib/xm_st.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/src/gallium/state_trackers/glx/xlib/xm_st.c b/src/gallium/state_trackers/glx/xlib/xm_st.c
index c62eb8b..9cd744c 100644
--- a/src/gallium/state_trackers/glx/xlib/xm_st.c
+++ b/src/gallium/state_trackers/glx/xlib/xm_st.c
@@ -38,6 +38,7 @@ struct xmesa_st_framebuffer {
struct pipe_screen *screen;
struct st_visual stvis;
+ enum pipe_texture_target target;
unsigned texture_width, texture_height, texture_mask;
struct pipe_resource *textures[ST_ATTACHMENT_COUNT];
@@ -139,7 +140,7 @@ xmesa_st_framebuffer_validate_textures(struct st_framebuffer_iface *stfbi,
}
memset(&templ, 0, sizeof(templ));
- templ.target = PIPE_TEXTURE_2D;
+ templ.target = xstfb->target;
templ.width0 = width;
templ.height0 = height;
templ.depth0 = 1;
@@ -279,6 +280,10 @@ xmesa_create_st_framebuffer(XMesaDisplay xmdpy, XMesaBuffer b)
xstfb->buffer = b;
xstfb->screen = xmdpy->screen;
xstfb->stvis = b->xm_visual->stvis;
+ if(xstfb->screen->get_param(xstfb->screen, PIPE_CAP_NPOT_TEXTURES))
+ xstfb->target = PIPE_TEXTURE_2D;
+ else
+ xstfb->target = PIPE_TEXTURE_RECT;
stfbi->visual = &xstfb->stvis;
stfbi->flush_front = xmesa_st_framebuffer_flush_front;
More information about the mesa-commit
mailing list