diff options
author | Marek Olšák <[email protected]> | 2011-12-29 18:18:38 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-01-01 11:47:05 +0100 |
commit | ce9d61fec64138ebf8d0bec2511e66593297b7d5 (patch) | |
tree | 3e60c2743b8df17392415e7d22b0e10446343624 /src/gallium/drivers/r300/r300_texture.h | |
parent | ce31970af16558ebd60cfae33c000252bc3e1cbf (diff) |
r300g: rework resource_copy_region, not changing pipe_resource
Changing pipe_resource was wrong, because it can be used by other contexts
at the same time. This fixes the last possible race condition in r300g
that I know of.
This also fixes blitting NPOT compressed textures. Random pixels sometimes
appeared at the right-hand edge of the texture.
Finally, this removes r300_texture_desc::stride_in_pixels. It makes little
sense with sampler views and surfaces being able to override width0, height0,
and the format entirely.
Diffstat (limited to 'src/gallium/drivers/r300/r300_texture.h')
-rw-r--r-- | src/gallium/drivers/r300/r300_texture.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gallium/drivers/r300/r300_texture.h b/src/gallium/drivers/r300/r300_texture.h index f87d2842a8b..213bdffc2ed 100644 --- a/src/gallium/drivers/r300/r300_texture.h +++ b/src/gallium/drivers/r300/r300_texture.h @@ -46,10 +46,6 @@ uint32_t r300_translate_texformat(enum pipe_format format, uint32_t r500_tx_format_msb_bit(enum pipe_format format); -void r300_resource_set_properties(struct pipe_screen *screen, - struct pipe_resource *tex, - const struct pipe_resource *new_properties); - boolean r300_is_colorbuffer_format_supported(enum pipe_format format); boolean r300_is_zs_format_supported(enum pipe_format format); @@ -58,7 +54,10 @@ boolean r300_is_sampler_format_supported(enum pipe_format format); void r300_texture_setup_format_state(struct r300_screen *screen, struct r300_resource *tex, + enum pipe_format format, unsigned level, + unsigned width0_override, + unsigned height0_override, struct r300_texture_format_state *out); boolean r300_resource_get_handle(struct pipe_screen* screen, @@ -74,6 +73,11 @@ struct pipe_resource* r300_texture_create(struct pipe_screen* screen, const struct pipe_resource* templ); +struct pipe_surface* r300_create_surface_custom(struct pipe_context * ctx, + struct pipe_resource* texture, + const struct pipe_surface *surf_tmpl, + unsigned width0_override, + unsigned height0_override); struct pipe_surface* r300_create_surface(struct pipe_context *ctx, struct pipe_resource* texture, |