Mesa (gallium-rect-textures): winsys/sw: use PIPE_TEXTURE_RECT if appropriate
Luca Barbieri
lb at kemper.freedesktop.org
Fri Aug 20 07:50:13 UTC 2010
Module: Mesa
Branch: gallium-rect-textures
Commit: 710ee13e281aeee971c623325ed3671d16dfd6fe
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=710ee13e281aeee971c623325ed3671d16dfd6fe
Author: Luca Barbieri <luca at luca-barbieri.com>
Date: Thu Aug 19 01:44:02 2010 +0200
winsys/sw: use PIPE_TEXTURE_RECT if appropriate
---
src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c b/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
index b997abd..3a76098 100644
--- a/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
+++ b/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
@@ -52,6 +52,7 @@ struct wrapper_sw_winsys
struct sw_winsys base;
struct pipe_screen *screen;
struct pipe_context *pipe;
+ enum pipe_texture_target target;
};
struct wrapper_sw_displaytarget
@@ -145,7 +146,7 @@ wsw_dt_create(struct sw_winsys *ws,
* XXX Why don't we just get the template.
*/
memset(&templ, 0, sizeof(templ));
- templ.target = PIPE_TEXTURE_2D;
+ templ.target = wsw->target;
templ.width0 = width;
templ.height0 = height;
templ.format = format;
@@ -291,6 +292,11 @@ wrapper_sw_winsys_warp_pipe_screen(struct pipe_screen *screen)
if (!wsw->pipe)
goto err_free;
+ if(screen->get_param(screen, PIPE_CAP_NPOT_TEXTURES))
+ wsw->target = PIPE_TEXTURE_2D;
+ else
+ wsw->target = PIPE_TEXTURE_RECT;
+
return &wsw->base;
err_free:
More information about the mesa-commit
mailing list