[Mesa-dev] [v2 3/7] i965: Introduce state flag for blorp
Kenneth Graunke
kenneth at whitecape.org
Fri Apr 22 18:30:16 UTC 2016
On Friday, April 22, 2016 9:05:25 PM PDT Topi Pohjolainen wrote:
> CC: Kenneth Graunke <kenneth at whitecape.org>
> Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
> src/mesa/drivers/dri/i965/brw_context.h | 2 ++
> src/mesa/drivers/dri/i965/brw_state_upload.c | 1 +
> 2 files changed, 3 insertions(+)
Here's a bit more commit message:
In the past, BLORP has clobbered all BRW_NEW_* state flags, to trigger
re-emission of the entire 3D pipeline on the next draw. However, there
are some packets BLORP simply leaves alone, so there's no need to
re-emit them. Trying to reduce the set of dirty bits flagged after
BLORP runs is tricky.
Instead, we introduce a BRW_NEW_BLORP flag. This should be set on any
atom which emits a packet that BLORP also emits. When BLORP runs, it
will flag BRW_NEW_BLORP, causing those packets to get re-emitted.
This also makes it easy to avoid re-emitting specific atoms - we can
simply drop the BRW_NEW_BLORP flag on those.
To start, we assume that all packets need to be re-emitted. This is the
safest approach and closest to the existing code's behavior. Many of
these are obviously not required, and can be dropped in subsequent
patches.
Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Series is:
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/
i965/brw_context.h
> index 39c3d91..e449982 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.h
> +++ b/src/mesa/drivers/dri/i965/brw_context.h
> @@ -222,6 +222,7 @@ enum brw_state_id {
> BRW_STATE_CS_WORK_GROUPS,
> BRW_STATE_URB_SIZE,
> BRW_STATE_CC_STATE,
> + BRW_STATE_BLORP,
> BRW_NUM_STATE_BITS
> };
>
> @@ -311,6 +312,7 @@ enum brw_state_id {
> #define BRW_NEW_CS_WORK_GROUPS (1ull << BRW_STATE_CS_WORK_GROUPS)
> #define BRW_NEW_URB_SIZE (1ull << BRW_STATE_URB_SIZE)
> #define BRW_NEW_CC_STATE (1ull << BRW_STATE_CC_STATE)
> +#define BRW_NEW_BLORP (1ull << BRW_STATE_BLORP)
>
> struct brw_state_flags {
> /** State update flags signalled by mesa internals */
> diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/
drivers/dri/i965/brw_state_upload.c
> index a91d074..56bb95c 100644
> --- a/src/mesa/drivers/dri/i965/brw_state_upload.c
> +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
> @@ -667,6 +667,7 @@ static struct dirty_bit_map brw_bits[] = {
> DEFINE_BIT(BRW_NEW_CS_WORK_GROUPS),
> DEFINE_BIT(BRW_NEW_URB_SIZE),
> DEFINE_BIT(BRW_NEW_CC_STATE),
> + DEFINE_BIT(BRW_NEW_BLORP),
> {0, 0, 0}
> };
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160422/aab6d77a/attachment.sig>
More information about the mesa-dev
mailing list