[Mesa-dev] [PATCH] intel: Emit assertion failure ASAP when DRI2 separate stencil handshake fails
Chad Versace
chad at chad-versace.us
Fri Aug 19 10:44:36 PDT 2011
On 08/19/2011 10:35 AM, Eric Anholt wrote:
> On Thu, 18 Aug 2011 14:02:46 -0700, Chad Versace <chad at chad-versace.us> wrote:
>> When intel_verify_dri2_has_hiz() discovers that DRI2 (that is, the DDX
>> driver) cannot provide a separate stencil buffer, but
>> intel_context::hw_must_use_separate_stencil is set, then emit an
>> informative assertion failure as soon as possible.
>>
>> Currently, we do emit an assertion failure, but the its location is
>> sufficiently unrelated to the DRI2 HiZ handshake as to be uninformative.
>> In experimenting with HiZ, Anholt encountered this assertion failure and
>> was unable to understand its cause.
>>
>> CC: Eric Anholt <eric at anholt.net>
>> Signed-off-by: Chad Versace <chad at chad-versace.us>
>> ---
>> src/mesa/drivers/dri/intel/intel_context.c | 4 ++++
>> 1 files changed, 4 insertions(+), 0 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
>> index fe8be08..b9d2579 100644
>> --- a/src/mesa/drivers/dri/intel/intel_context.c
>> +++ b/src/mesa/drivers/dri/intel/intel_context.c
>> @@ -1454,6 +1454,10 @@ intel_verify_dri2_has_hiz(struct intel_context *intel,
>> * a combined depth/stencil buffer. Discard the hiz buffer too.
>> */
>> intel->intelScreen->dri2_has_hiz = INTEL_DRI2_HAS_HIZ_FALSE;
>> + if (intel->must_use_separate_stencil) {
>> + assert(!"intel_context requires separate stencil, but the "
>> + "DRIscreen does not support it");
>> + }
>>
>
> If it's something we think people can actually hit (and in this case we
> do), just use _mesa_problem so people see it even if they aren't
> building with assertions.
I would also like to throw an assertion immediately after _mesa_problem(), like below.
Since an assertion will eventually fail anyway, we might as well die ASAP.
_mesa_probelm(ctx, "intel_context requires separate stencil, but the "
"DRIscreen does no support it. You may need to upgrade "
"the Intel X driver to 2.16.0");
assert(0);
--
Chad Versace
chad at chad-versace.us
More information about the mesa-dev
mailing list