On 08/19/2011 04:00 PM, Chad Versace wrote:
> On 08/19/2011 03:18 PM, Kenneth Graunke wrote:
>> 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.
> 
> Thanks. I have never used abort() before... I forgot it was in the toolbox.
> 
> If I replace the assert with abort, is everyone happy?

Yep, I'm happy.  Thanks!
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to