From f49e201df95b4a46e4fd4702a6d8e6fc07657bd9 Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Thu, 29 May 2014 01:21:20 +0200 Subject: [PATCH] gallium/docs: improve documentation of render condition wrt blits. Reviewed-by: Brian Paul Reviewed-by: Jose Fonseca --- src/gallium/docs/source/context.rst | 10 +++++++--- src/gallium/include/pipe/p_state.h | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/gallium/docs/source/context.rst b/src/gallium/docs/source/context.rst index 571ee87c2dc..a9625f39edc 100644 --- a/src/gallium/docs/source/context.rst +++ b/src/gallium/docs/source/context.rst @@ -392,8 +392,10 @@ Conditional Rendering A drawing command can be skipped depending on the outcome of a query (typically an occlusion query, or streamout overflow predicate). The ``render_condition`` function specifies the query which should be checked -prior to rendering anything. Functions honoring render_condition include +prior to rendering anything. Functions always honoring render_condition include (and are limited to) draw_vbo, clear, clear_render_target, clear_depth_stencil. +The blit function (but not resource_copy_region, which seems inconsistent) +can also optionally honor the current render condition. If ``render_condition`` is called with ``query`` = NULL, conditional rendering is disabled and drawing takes place normally. @@ -465,8 +467,10 @@ but overlapping blits are not permitted. This can be considered the equivalent of a CPU memcpy. ``blit`` blits a region of a resource to a region of another resource, including -scaling, format conversion, and up-/downsampling, as well as -a destination clip rectangle (scissors). +scaling, format conversion, and up-/downsampling, as well as a destination clip +rectangle (scissors). It can also optionally honor the current render condition +(but either way the blit itself never contributes anything to queries currently +gathering data). As opposed to manually drawing a textured quad, this lets the pipe driver choose the optimal method for blitting (like using a special 2D engine), and usually offers, for example, accelerated stencil-only copies even where diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index 07ce88ea62d..72576041ece 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -592,8 +592,8 @@ struct pipe_blit_info boolean scissor_enable; struct pipe_scissor_state scissor; - boolean render_condition_enable; /**< whether to leave current render - condition enabled */ + boolean render_condition_enable; /**< whether the blit should honor the + current render condition */ }; -- 2.30.2