mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-18 22:00:25 +01:00
st/dri: don't expose visuals we'll have trouble supporting
without getBuffersWithFormat some visuals will just cause headaches (crashes), so if we're running on an older system simply don't advertise them.
This commit is contained in:
parent
3477dc4c48
commit
df0c8d029d
1 changed files with 20 additions and 9 deletions
|
|
@ -99,12 +99,6 @@ dri_fill_in_modes(struct dri_screen *screen,
|
|||
stencil_bits_array[0] = 0;
|
||||
depth_buffer_factor = 1;
|
||||
|
||||
pf_z16 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z16_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_z32 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z32_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_x8z24 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_X8Z24_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
|
|
@ -117,9 +111,6 @@ dri_fill_in_modes(struct dri_screen *screen,
|
|||
pf_z24s8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_r5g6b5 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0);
|
||||
pf_a8r8g8b8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_A8R8G8B8_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0);
|
||||
|
|
@ -127,6 +118,26 @@ dri_fill_in_modes(struct dri_screen *screen,
|
|||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0);
|
||||
|
||||
/* we support buffers with different depths only if we can tell the driver
|
||||
* the actual depth of each of them. */
|
||||
if (screen->sPriv->dri2.loader
|
||||
&& (screen->sPriv->dri2.loader->base.version > 2)
|
||||
&& (screen->sPriv->dri2.loader->getBuffersWithFormat != NULL)) {
|
||||
pf_z16 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z16_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_z32 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z32_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_r5g6b5 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_R5G6B5_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0);
|
||||
} else {
|
||||
pf_z16 = FALSE;
|
||||
pf_z32 = FALSE;
|
||||
pf_r5g6b5 = FALSE;
|
||||
}
|
||||
|
||||
if (pf_z16) {
|
||||
depth_bits_array[depth_buffer_factor] = 16;
|
||||
stencil_bits_array[depth_buffer_factor++] = 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue