i965: Clean up error handling for context creation.
authorEric Anholt <eric@anholt.net>
Fri, 27 Sep 2013 00:08:28 +0000 (17:08 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 10 Oct 2013 23:34:30 +0000 (16:34 -0700)
commitee8983beccfd4690e4cdd9b1d818aa284656ce88
treed0eb1d25b111c760b7c98e7928ade46e54450122
parent18a8f31070def704ad65c86166eaadc6e1c3349c
i965: Clean up error handling for context creation.

The intel_screen.c used to be a dispatch to one of 3 driver functions, but
was down to 1, so it was kind of a waste.  In addition, it was trying to
free all of the data that might have been partially freed in the kernel
3.6 check (which comes after intelInitContext, and thus might have had
driverPrivate set and result in intelDestroyContext() doing work on the
freed data).  By moving the driverPrivate setup earlier, we can use
intelDestroyContext() consistently and avoid such problems in the future.

v2: Adjust the prototype of brwCreateContext to use the proper enum
    (fixing a compiler warning in some builds)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
src/mesa/drivers/dri/i965/brw_context.c
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/intel_context.c
src/mesa/drivers/dri/i965/intel_screen.c