Commit 5c6d6eed authored by chadversary's avatar chadversary

dri: Add param driCreateConfigs(mutable_render_buffer)

If set, then the config will have __DRI_ATTRIB_MUTABLE_RENDER_BUFFER,
which translates to EGL_MUTABLE_RENDER_BUFFER_BIT_KHR.

Not used yet.
Reviewed-by: Tapani Pälli's avatarTapani Pälli <tapani.palli@intel.com>
parent bbe2d50b
......@@ -274,7 +274,7 @@ dri_fill_in_modes(struct dri_screen *screen)
depth_buffer_factor, back_buffer_modes,
ARRAY_SIZE(back_buffer_modes),
msaa_modes, 1,
GL_TRUE, !mixed_color_depth);
GL_TRUE, !mixed_color_depth, GL_FALSE);
configs = driConcatConfigs(configs, new_configs);
/* Multi-sample configs without an accumulation buffer. */
......@@ -284,7 +284,7 @@ dri_fill_in_modes(struct dri_screen *screen)
depth_buffer_factor, back_buffer_modes,
ARRAY_SIZE(back_buffer_modes),
msaa_modes+1, num_msaa_modes-1,
GL_FALSE, !mixed_color_depth);
GL_FALSE, !mixed_color_depth, GL_FALSE);
configs = driConcatConfigs(configs, new_configs);
}
}
......
......@@ -147,7 +147,10 @@ driGetRendererString( char * buffer, const char * hardware_name,
* \param color_depth_match Whether the color depth must match the zs depth
* This forces 32-bit color to have 24-bit depth, and
* 16-bit color to have 16-bit depth.
*
* \param mutable_render_buffer Enable __DRI_ATTRIB_MUTABLE_RENDER_BUFFER,
* which translates to
* EGL_MUTABLE_RENDER_BUFFER_BIT_KHR.
*
* \returns
* Pointer to any array of pointers to the \c __DRIconfig structures created
* for the specified formats. If there is an error, \c NULL is returned.
......@@ -160,7 +163,8 @@ driCreateConfigs(mesa_format format,
unsigned num_depth_stencil_bits,
const GLenum * db_modes, unsigned num_db_modes,
const uint8_t * msaa_samples, unsigned num_msaa_modes,
GLboolean enable_accum, GLboolean color_depth_match)
GLboolean enable_accum, GLboolean color_depth_match,
GLboolean mutable_render_buffer)
{
static const uint32_t masks_table[][4] = {
/* MESA_FORMAT_B5G6R5_UNORM */
......@@ -325,6 +329,7 @@ driCreateConfigs(mesa_format format,
modes->yInverted = GL_TRUE;
modes->sRGBCapable = is_srgb;
modes->mutableRenderBuffer = mutable_render_buffer;
}
}
}
......
......@@ -45,7 +45,8 @@ driCreateConfigs(mesa_format format,
unsigned num_depth_stencil_bits,
const GLenum * db_modes, unsigned num_db_modes,
const uint8_t * msaa_samples, unsigned num_msaa_modes,
GLboolean enable_accum, GLboolean color_depth_match);
GLboolean enable_accum, GLboolean color_depth_match,
GLboolean mutable_render_buffer);
__DRIconfig **driConcatConfigs(__DRIconfig **a,
__DRIconfig **b);
......
......@@ -1094,7 +1094,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
num_depth_stencil_bits,
back_buffer_modes, 2,
singlesample_samples, 1,
false, false);
false, false, false);
configs = driConcatConfigs(configs, new_configs);
}
......@@ -1116,7 +1116,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
depth_bits, stencil_bits, 1,
back_buffer_modes, 1,
singlesample_samples, 1,
true, false);
true, false, false);
configs = driConcatConfigs(configs, new_configs);
}
......
......@@ -2195,7 +2195,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
num_depth_stencil_bits,
back_buffer_modes, 2,
singlesample_samples, 1,
false, false);
false, false, false);
configs = driConcatConfigs(configs, new_configs);
}
......@@ -2222,7 +2222,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
depth_bits, stencil_bits, 1,
back_buffer_modes, 1,
singlesample_samples, 1,
true, false);
true, false, false);
configs = driConcatConfigs(configs, new_configs);
}
......@@ -2289,7 +2289,7 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
back_buffer_modes, 1,
multisample_samples,
num_msaa_modes,
false, false);
false, false, false);
configs = driConcatConfigs(configs, new_configs);
}
......
......@@ -78,7 +78,7 @@ nouveau_get_configs(uint32_t chipset)
ARRAY_SIZE(back_buffer_modes),
msaa_samples,
ARRAY_SIZE(msaa_samples),
GL_TRUE, chipset < 0x10);
GL_TRUE, chipset < 0x10, GL_FALSE);
assert(config);
configs = driConcatConfigs(configs, config);
......
......@@ -804,7 +804,7 @@ __DRIconfig **radeonInitScreen2(__DRIscreen *psp)
ARRAY_SIZE(back_buffer_modes),
msaa_samples_array,
ARRAY_SIZE(msaa_samples_array),
GL_TRUE, GL_FALSE);
GL_TRUE, GL_FALSE, GL_FALSE);
configs = driConcatConfigs(configs, new_configs);
}
......
......@@ -272,7 +272,7 @@ swrastFillInModes(__DRIscreen *psp,
depth_bits_array, stencil_bits_array,
depth_buffer_factor, back_buffer_modes,
back_buffer_factor, msaa_samples_array, 1,
GL_TRUE, GL_FALSE);
GL_TRUE, GL_FALSE, GL_FALSE);
if (configs == NULL) {
fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__,
__LINE__);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment