[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