intel: Expose a minimal number of configs with accumulation buffer

Expose one config per color depth that includes accumulation buffer.
We could probably expose only one config with accumulation buffer, but
that would require figuring out the actual color depth.  This is
easier and only exposes 2 useless configs.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
This commit is contained in:
Ian Romanick
2010-02-08 11:21:29 -08:00
parent 3cce4a1e10
commit bb65a1d009

View File

@@ -388,6 +388,9 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
depth_bits[0] = 0; depth_bits[0] = 0;
stencil_bits[0] = 0; stencil_bits[0] = 0;
/* Generate a rich set of useful configs that do not include an
* accumulation buffer.
*/
for (color = 0; color < ARRAY_SIZE(fb_format); color++) { for (color = 0; color < ARRAY_SIZE(fb_format); color++) {
__DRIconfig **new_configs; __DRIconfig **new_configs;
int depth_factor; int depth_factor;
@@ -414,6 +417,31 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
ARRAY_SIZE(back_buffer_modes), ARRAY_SIZE(back_buffer_modes),
msaa_samples_array, msaa_samples_array,
ARRAY_SIZE(msaa_samples_array), ARRAY_SIZE(msaa_samples_array),
GL_FALSE);
if (configs == NULL)
configs = new_configs;
else
configs = driConcatConfigs(configs, new_configs);
}
/* Generate the minimum possible set of configs that include an
* accumulation buffer.
*/
for (color = 0; color < ARRAY_SIZE(fb_format); color++) {
__DRIconfig **new_configs;
if (fb_type[color] == GL_UNSIGNED_SHORT_5_6_5) {
depth_bits[0] = 16;
stencil_bits[0] = 0;
} else {
depth_bits[0] = 24;
stencil_bits[0] = 8;
}
new_configs = driCreateConfigs(fb_format[color], fb_type[color],
depth_bits, stencil_bits, 1,
back_buffer_modes + 1, 1,
msaa_samples_array, 1,
GL_TRUE); GL_TRUE);
if (configs == NULL) if (configs == NULL)
configs = new_configs; configs = new_configs;