i965: Fall back to GL 4.2/4.3 on Haswell if the kernel isn't new enough.
In commit d2590eb65f
I enabled GL 4.5
on Haswell...but failed to check if we could do indirect compute
shader dispatch...and query buffer objects.
Indirect compute shader dispatch requires command parser version 5
(kernel commit 7b9748cb513a6bef4af87b79f0da3ff7e8b56cd8, which is in
Linux v4.4). On earlier kernels we would have disabled
ARB_compute_shader, which is a mandatory part of OpenGL 4.3+.
Query buffer objects currently require MI_MATH and MI_LOAD_REGISTER_REG,
which mean command parser version 7 (Linux v4.8). On earlier kernels
we would have disabled ARB_query_buffer_object, which is a mandatory
part of OpenGL 4.4+.
The new version support looks like:
- Kernel 4.1 and older => OpenGL 3.3
- Kernel 4.2-4.3 => OpenGL 4.2
- Kernel 4.4-4.7 => OpenGL 4.3
- Kernel 4.8+ => OpenGL 4.5
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
This commit is contained in:
parent
99d400b78f
commit
9b324e4dca
|
@ -1554,8 +1554,15 @@ set_max_gl_versions(struct intel_screen *screen)
|
|||
dri_screen->max_gl_es2_version = has_astc ? 32 : 31;
|
||||
break;
|
||||
case 7:
|
||||
dri_screen->max_gl_core_version = screen->devinfo.is_haswell &&
|
||||
can_do_pipelined_register_writes(screen) ? 45 : 33;
|
||||
dri_screen->max_gl_core_version = 33;
|
||||
if (screen->devinfo.is_haswell &&
|
||||
can_do_pipelined_register_writes(screen)) {
|
||||
dri_screen->max_gl_core_version = 42;
|
||||
if (can_do_compute_dispatch(screen))
|
||||
dri_screen->max_gl_core_version = 43;
|
||||
if (can_do_mi_math_and_lrr(screen))
|
||||
dri_screen->max_gl_core_version = 45;
|
||||
}
|
||||
dri_screen->max_gl_compat_version = 30;
|
||||
dri_screen->max_gl_es1_version = 11;
|
||||
dri_screen->max_gl_es2_version = screen->devinfo.is_haswell ? 31 : 30;
|
||||
|
|
Loading…
Reference in New Issue