diff options
author | Luca Barbieri <[email protected]> | 2010-08-19 00:55:13 +0200 |
---|---|---|
committer | Luca Barbieri <[email protected]> | 2010-08-20 12:04:07 +0200 |
commit | d34f6e9db15a1fa3a7e3b68e47ac4eef2706b8cd (patch) | |
tree | 6575ffc42eee90d8bd0ea4207f43e0b25ae31b29 /src | |
parent | 4a5acc0ec7d6d94ea2a73b3d8ee498f75e929a1c (diff) |
st/glx: use PIPE_TEXTURE_RECT if appropriate
Diffstat (limited to 'src')
-rw-r--r-- | 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 c62eb8bfbd1..9cd744c3a63 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; |