diff options
Diffstat (limited to 'src/gallium/auxiliary/util/u_blitter.h')
-rw-r--r-- | src/gallium/auxiliary/util/u_blitter.h | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/src/gallium/auxiliary/util/u_blitter.h b/src/gallium/auxiliary/util/u_blitter.h index a9ad023644c..9fe7952951d 100644 --- a/src/gallium/auxiliary/util/u_blitter.h +++ b/src/gallium/auxiliary/util/u_blitter.h @@ -126,19 +126,21 @@ struct pipe_context *util_blitter_get_pipe(struct blitter_context *blitter) } /* - * These states must be saved before any of the following functions is called: - * - blend state - * - depth stencil alpha state - * - rasterizer state - * - vertex shader - * - any other shader??? (XXX) - * - fragment shader + * These states must be saved before any of the following functions are called: * - vertex buffers * - vertex elements + * - vertex shader + * - rasterizer state */ /** * Clear a specified set of currently bound buffers to specified values. + * + * These states must be saved in the blitter in addition to the state objects + * already required to be saved: + * - fragment shader + * - depth stencil alpha state + * - blend state */ void util_blitter_clear(struct blitter_context *blitter, unsigned width, unsigned height, @@ -155,7 +157,7 @@ void util_blitter_clear_depth_custom(struct blitter_context *blitter, * Copy a block of pixels from one surface to another. * * You can copy from any color format to any other color format provided - * the former can be sampled and the latter can be rendered to. Otherwise, + * the former can be sampled from and the latter can be rendered to. Otherwise, * a software fallback path is taken and both surfaces must be of the same * format. * @@ -163,14 +165,18 @@ void util_blitter_clear_depth_custom(struct blitter_context *blitter, * cannot be copied unless you set ignore_stencil to FALSE. In that case, * a software fallback path is taken and both surfaces must be of the same * format. + * XXX implement hw-accel stencil copy using shader stencil export. * * Use pipe_screen->is_format_supported to know your options. * * These states must be saved in the blitter in addition to the state objects * already required to be saved: - * - framebuffer state + * - fragment shader + * - depth stencil alpha state + * - blend state * - fragment sampler states * - fragment sampler textures + * - framebuffer state */ void util_blitter_copy_texture(struct blitter_context *blitter, struct pipe_resource *dst, @@ -186,6 +192,9 @@ void util_blitter_copy_texture(struct blitter_context *blitter, * * These states must be saved in the blitter in addition to the state objects * already required to be saved: + * - fragment shader + * - depth stencil alpha state + * - blend state * - framebuffer state */ void util_blitter_clear_render_target(struct blitter_context *blitter, @@ -200,6 +209,9 @@ void util_blitter_clear_render_target(struct blitter_context *blitter, * * These states must be saved in the blitter in addition to the state objects * already required to be saved: + * - fragment shader + * - depth stencil alpha state + * - blend state * - framebuffer state */ void util_blitter_clear_depth_stencil(struct blitter_context *blitter, @@ -220,7 +232,7 @@ void util_blitter_custom_depth_stencil(struct blitter_context *blitter, * of the util_blitter_{clear, copy_region, fill_region} functions and then * forgotten. * - * CSOs not listed here are not affected by util_blitter. */ + * States not listed here are not affected by util_blitter. */ static INLINE void util_blitter_save_blend(struct blitter_context *blitter, @@ -322,8 +334,8 @@ util_blitter_save_fragment_sampler_views(struct blitter_context *blitter, static INLINE void util_blitter_save_vertex_buffers(struct blitter_context *blitter, - int num_vertex_buffers, - struct pipe_vertex_buffer *vertex_buffers) + int num_vertex_buffers, + struct pipe_vertex_buffer *vertex_buffers) { assert(num_vertex_buffers <= Elements(blitter->saved_vertex_buffers)); |