st/dri: use PIPE_TEXTURE_RECT if appropriate

This commit is contained in:
Luca Barbieri 2010-08-18 22:57:22 +02:00
parent d4ec85e624
commit 4a5acc0ec7
4 changed files with 9 additions and 3 deletions

View file

@ -383,6 +383,11 @@ dri_init_screen_helper(struct dri_screen *screen,
if (!screen->st_api)
return NULL;
if(pscreen->get_param(pscreen, PIPE_CAP_NPOT_TEXTURES))
screen->target = PIPE_TEXTURE_2D;
else
screen->target = PIPE_TEXTURE_RECT;
driParseOptionInfo(&screen->optionCache,
__driConfigOptions, __driNConfigOptions);

View file

@ -68,6 +68,7 @@ struct dri_screen
boolean d_depth_bits_last;
boolean sd_depth_bits_last;
boolean auto_fake_front;
enum pipe_texture_target target;
};
/** cast wrapper */

View file

@ -195,7 +195,7 @@ dri2_drawable_process_buffers(struct dri_drawable *drawable,
pipe_resource_reference(&drawable->textures[i], NULL);
memset(&templ, 0, sizeof(templ));
templ.target = PIPE_TEXTURE_2D;
templ.target = screen->target;
templ.last_level = 0;
templ.width0 = dri_drawable->w;
templ.height0 = dri_drawable->h;
@ -342,7 +342,7 @@ dri2_create_image_from_name(__DRIcontext *context,
memset(&templ, 0, sizeof(templ));
templ.bind = tex_usage;
templ.format = pf;
templ.target = PIPE_TEXTURE_2D;
templ.target = screen->target;
templ.last_level = 0;
templ.width0 = width;
templ.height0 = height;

View file

@ -216,7 +216,7 @@ drisw_allocate_textures(struct dri_drawable *drawable,
}
memset(&templ, 0, sizeof(templ));
templ.target = PIPE_TEXTURE_2D;
templ.target = screen->target;
templ.width0 = width;
templ.height0 = height;
templ.depth0 = 1;