On 08/19/2011 10:44 AM, Chad Versace wrote:
> On 08/19/2011 10:35 AM, Eric Anholt wrote:
>> On Thu, 18 Aug 2011 14:02:46 -0700, Chad Versace <c...@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 <e...@anholt.net>
>>> Signed-off-by: Chad Versace <c...@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);

Not assert(0)...abort().  assertions get compiled away to nothing in
release mode.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to