[Mesa-dev] [PATCH] intel: Emit assertion failure ASAP when DRI2 separate stencil handshake fails

Ian Romanick idr at freedesktop.org
Fri Aug 19 10:43:11 PDT 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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.

If we're on hardware that requires separate stencil and the DDX does not
support it, we should emit a message and fail to load.  I agree with
Eric that this should not depend on being built with assertions.  This
is a "real" error, not a violation of an invariant due to a code bug.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iEYEARECAAYFAk5OoK8ACgkQX1gOwKyEAw/TcwCcDcSd8kNWm9x5XfI3S2RfUOsD
vYQAn3wi8MekZdEdzT9bIS9XiRpuBVOc
=lVTg
-----END PGP SIGNATURE-----


More information about the mesa-dev mailing list