dri: Allow selective generation of accum. buffer configs

Modify the interface to driCreateConfigs allowing drivers to not
expose configs with an accumuation buffer.  All of the drivers calling
function have been updated to pass true for the accumulation
selector.  This maintains the current behavior.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Corbin Simpson <MostAwesomeDude@gmail.com>
This commit is contained in:
Ian Romanick
2010-02-08 11:09:15 -08:00
parent 73e24cd5a7
commit 3cce4a1e10
16 changed files with 32 additions and 22 deletions

View File

@@ -157,7 +157,8 @@ dri_fill_in_modes(struct dri_screen *screen,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, back_buffer_modes, depth_buffer_factor, back_buffer_modes,
back_buffer_factor, back_buffer_factor,
msaa_samples_array, msaa_samples_factor); msaa_samples_array, msaa_samples_factor,
GL_TRUE);
} else { } else {
__DRIconfig **configs_a8r8g8b8 = NULL; __DRIconfig **configs_a8r8g8b8 = NULL;
__DRIconfig **configs_x8r8g8b8 = NULL; __DRIconfig **configs_x8r8g8b8 = NULL;
@@ -170,7 +171,8 @@ dri_fill_in_modes(struct dri_screen *screen,
back_buffer_modes, back_buffer_modes,
back_buffer_factor, back_buffer_factor,
msaa_samples_array, msaa_samples_array,
msaa_samples_factor); msaa_samples_factor,
GL_TRUE);
if (pf_x8r8g8b8) if (pf_x8r8g8b8)
configs_x8r8g8b8 = driCreateConfigs(GL_BGR, GL_UNSIGNED_INT_8_8_8_8_REV, configs_x8r8g8b8 = driCreateConfigs(GL_BGR, GL_UNSIGNED_INT_8_8_8_8_REV,
depth_bits_array, depth_bits_array,
@@ -179,7 +181,8 @@ dri_fill_in_modes(struct dri_screen *screen,
back_buffer_modes, back_buffer_modes,
back_buffer_factor, back_buffer_factor,
msaa_samples_array, msaa_samples_array,
msaa_samples_factor); msaa_samples_factor,
GL_TRUE);
if (configs_a8r8g8b8 && configs_x8r8g8b8) if (configs_a8r8g8b8 && configs_x8r8g8b8)
configs = driConcatConfigs(configs_x8r8g8b8, configs_a8r8g8b8); configs = driConcatConfigs(configs_x8r8g8b8, configs_a8r8g8b8);

View File

@@ -424,7 +424,8 @@ driCreateConfigs(GLenum fb_format, GLenum fb_type,
const uint8_t * depth_bits, const uint8_t * stencil_bits, const uint8_t * depth_bits, const uint8_t * stencil_bits,
unsigned num_depth_stencil_bits, unsigned num_depth_stencil_bits,
const GLenum * db_modes, unsigned num_db_modes, const GLenum * db_modes, unsigned num_db_modes,
const uint8_t * msaa_samples, unsigned num_msaa_modes) const uint8_t * msaa_samples, unsigned num_msaa_modes,
GLboolean enable_accum)
{ {
static const uint8_t bits_table[4][4] = { static const uint8_t bits_table[4][4] = {
/* R G B A */ /* R G B A */
@@ -486,7 +487,7 @@ driCreateConfigs(GLenum fb_format, GLenum fb_type,
__GLcontextModes *modes; __GLcontextModes *modes;
unsigned i, j, k, h; unsigned i, j, k, h;
unsigned num_modes; unsigned num_modes;
unsigned num_accum_bits = 2; unsigned num_accum_bits = (enable_accum) ? 2 : 1;
switch ( fb_type ) { switch ( fb_type ) {
case GL_UNSIGNED_BYTE_3_3_2: case GL_UNSIGNED_BYTE_3_3_2:

View File

@@ -104,7 +104,8 @@ driCreateConfigs(GLenum fb_format, GLenum fb_type,
const uint8_t * depth_bits, const uint8_t * stencil_bits, const uint8_t * depth_bits, const uint8_t * stencil_bits,
unsigned num_depth_stencil_bits, unsigned num_depth_stencil_bits,
const GLenum * db_modes, unsigned num_db_modes, const GLenum * db_modes, unsigned num_db_modes,
const uint8_t * msaa_samples, unsigned num_msaa_modes); const uint8_t * msaa_samples, unsigned num_msaa_modes,
GLboolean enable_accum);
__DRIconfig **driConcatConfigs(__DRIconfig **a, __DRIconfig **driConcatConfigs(__DRIconfig **a,
__DRIconfig **b); __DRIconfig **b);

View File

@@ -658,7 +658,7 @@ ffbFillInModes( __DRIscreen *psp,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, back_buffer_modes, depth_buffer_factor, back_buffer_modes,
back_buffer_factor, back_buffer_factor,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__,
__LINE__); __LINE__);

View File

@@ -92,7 +92,7 @@ i810FillInModes( __DRIscreen *psp,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, depth_buffer_factor,
back_buffer_modes, back_buffer_factor, back_buffer_modes, back_buffer_factor,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf( stderr, "[%s:%u] Error creating FBConfig!\n", fprintf( stderr, "[%s:%u] Error creating FBConfig!\n",
__func__, __LINE__ ); __func__, __LINE__ );

View File

@@ -413,7 +413,8 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
back_buffer_modes, back_buffer_modes,
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_TRUE);
if (configs == NULL) if (configs == NULL)
configs = new_configs; configs = new_configs;
else else

View File

@@ -119,7 +119,7 @@ mach64FillInModes( __DRIscreen *psp,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, back_buffer_modes, depth_buffer_factor, back_buffer_modes,
back_buffer_factor, back_buffer_factor,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", fprintf(stderr, "[%s:%u] Error creating FBConfig!\n",
__func__, __LINE__); __func__, __LINE__);

View File

@@ -160,7 +160,7 @@ mgaFillInModes( __DRIscreen *psp,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, depth_buffer_factor,
back_buffer_modes, back_buffer_factor, back_buffer_modes, back_buffer_factor,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf( stderr, "[%s:%u] Error creating FBConfig!\n", fprintf( stderr, "[%s:%u] Error creating FBConfig!\n",
__func__, __LINE__ ); __func__, __LINE__ );

View File

@@ -83,7 +83,8 @@ nouveau_get_configs(void)
back_buffer_modes, back_buffer_modes,
Elements(back_buffer_modes), Elements(back_buffer_modes),
msaa_samples, msaa_samples,
Elements(msaa_samples)); Elements(msaa_samples),
GL_TRUE);
assert(config); assert(config);
configs = configs ? driConcatConfigs(configs, config) configs = configs ? driConcatConfigs(configs, config)

View File

@@ -449,7 +449,7 @@ r128FillInModes( __DRIscreen *psp,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, back_buffer_modes, depth_buffer_factor, back_buffer_modes,
back_buffer_factor, back_buffer_factor,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__,
__LINE__); __LINE__);

View File

@@ -293,18 +293,18 @@ radeonFillInModes( __DRIscreen *psp,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, back_buffer_modes, depth_buffer_factor, back_buffer_modes,
back_buffer_factor, msaa_samples_array, back_buffer_factor, msaa_samples_array,
1); 1, TRUE);
configs_a8r8g8b8 = driCreateConfigs(GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, configs_a8r8g8b8 = driCreateConfigs(GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
1, back_buffer_modes, 1, 1, back_buffer_modes, 1,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
configs = driConcatConfigs(configs_r5g6b5, configs_a8r8g8b8); configs = driConcatConfigs(configs_r5g6b5, configs_a8r8g8b8);
} else } else
configs = driCreateConfigs(GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, configs = driCreateConfigs(GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, depth_buffer_factor,
back_buffer_modes, back_buffer_factor, back_buffer_modes, back_buffer_factor,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf( stderr, "[%s:%u] Error creating FBConfig!\n", fprintf( stderr, "[%s:%u] Error creating FBConfig!\n",
@@ -1676,7 +1676,8 @@ __DRIconfig **radeonInitScreen2(__DRIscreen *psp)
back_buffer_modes, back_buffer_modes,
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_TRUE);
if (configs == NULL) if (configs == NULL)
configs = new_configs; configs = new_configs;
else else

View File

@@ -939,7 +939,7 @@ savageFillInModes( __DRIscreen *psp,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, depth_buffer_factor,
back_buffer_modes, back_buffer_factor, back_buffer_modes, back_buffer_factor,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf( stderr, "[%s:%u] Error creating FBConfig!\n", fprintf( stderr, "[%s:%u] Error creating FBConfig!\n",
__func__, __LINE__ ); __func__, __LINE__ );

View File

@@ -103,7 +103,7 @@ sisFillInModes(__DRIscreen *psp, int bpp)
configs = driCreateConfigs(fb_format, fb_type, depth_bits_array, configs = driCreateConfigs(fb_format, fb_type, depth_bits_array,
stencil_bits_array, depth_buffer_factor, stencil_bits_array, depth_buffer_factor,
back_buffer_modes, back_buffer_factor, back_buffer_modes, back_buffer_factor,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, __LINE__); fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, __LINE__);
return NULL; return NULL;

View File

@@ -132,7 +132,8 @@ swrastFillInModes(__DRIscreen *psp,
configs = driCreateConfigs(fb_format, fb_type, configs = driCreateConfigs(fb_format, fb_type,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, back_buffer_modes, depth_buffer_factor, back_buffer_modes,
back_buffer_factor, msaa_samples_array, 1); back_buffer_factor, msaa_samples_array, 1,
GL_TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__,
__LINE__); __LINE__);

View File

@@ -383,7 +383,8 @@ tdfxFillInModes(__DRIscreen *psp,
stencil_bits_array, stencil_bits_array,
deep ? 2 : 4, deep ? 2 : 4,
db_modes, 2, db_modes, 2,
msaa_samples_array, 1); msaa_samples_array, 1,
GL_TRUE);
} }
/** /**

View File

@@ -354,7 +354,7 @@ viaFillInModes( __DRIscreen *psp,
depth_bits_array, stencil_bits_array, depth_bits_array, stencil_bits_array,
depth_buffer_factor, back_buffer_modes, depth_buffer_factor, back_buffer_modes,
back_buffer_factor, back_buffer_factor,
msaa_samples_array, 1); msaa_samples_array, 1, TRUE);
if (configs == NULL) { if (configs == NULL) {
fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__,
__LINE__); __LINE__);