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:
@@ -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);
|
||||||
|
@@ -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:
|
||||||
|
@@ -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);
|
||||||
|
@@ -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__);
|
||||||
|
@@ -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__ );
|
||||||
|
@@ -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
|
||||||
|
@@ -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__);
|
||||||
|
@@ -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__ );
|
||||||
|
@@ -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)
|
||||||
|
@@ -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__);
|
||||||
|
@@ -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
|
||||||
|
@@ -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__ );
|
||||||
|
@@ -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;
|
||||||
|
@@ -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__);
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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__);
|
||||||
|
Reference in New Issue
Block a user