Commit 4c71c8a7 authored by Kenneth Graunke's avatar Kenneth Graunke

i965: Only enable ARB_query_buffer_object for newer kernels on Haswell.

On Haswell, we need version 6 of the kernel command parser in order to
write the math registers.  Our implementation of ARB_query_buffer_object
heavily relies on MI_MATH, so we should only advertise it when MI_MATH
is available.  We also need MI_LOAD_REGISTER_REG, which requires version
7 of the command parser.

To make these checks easier, introduce a screen->has_mi_math_and_lrr
flag that will be set when both commands are supported.
Signed-off-by: Kenneth Graunke's avatarKenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen's avatarJordan Justen <jordan.l.justen@intel.com>
parent 2d41eb31
......@@ -366,7 +366,7 @@ intelInitExtensions(struct gl_context *ctx)
}
}
if (brw->gen >= 8 || brw->is_haswell) {
if (brw->intelScreen->has_mi_math_and_lrr) {
ctx->Extensions.ARB_query_buffer_object = true;
}
......
......@@ -1531,6 +1531,14 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
if (ret == -1)
intelScreen->cmd_parser_version = 0;
/* Haswell requires command parser version 6 in order to write to the
* MI_MATH GPR registers, and version 7 in order to use
* MI_LOAD_REGISTER_REG (which all users of MI_MATH use).
*/
intelScreen->has_mi_math_and_lrr = intelScreen->devinfo->gen >= 8 ||
(intelScreen->devinfo->is_haswell &&
intelScreen->cmd_parser_version >= 7);
psp->extensions = !intelScreen->has_context_reset_notification
? intelScreenExtensions : intelRobustScreenExtensions;
......
......@@ -55,6 +55,12 @@ struct intel_screen
*/
bool has_resource_streamer;
/**
* Does the current hardware and kernel support MI_MATH and
* MI_LOAD_REGISTER_REG?
*/
bool has_mi_math_and_lrr;
/**
* Does the kernel support context reset notifications?
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment