mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 11:30:21 +01:00
new MESA_GLX_DEPTH_BITS env var
This commit is contained in:
parent
eae26ca4ba
commit
dfa5c2bfbb
3 changed files with 28 additions and 6 deletions
|
|
@ -1249,7 +1249,7 @@ Mesa Version History
|
|||
(Justin Novosad of Discreet) (see config.h file)
|
||||
- support for AUX buffers in software GLX driver
|
||||
- updated glext.h to version 23
|
||||
- new MESA_GLX_FORCE_ALPHA environment variable for x11 driver
|
||||
- new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars
|
||||
Changes:
|
||||
- fragment fog interpolation is perspective corrected now
|
||||
- new glTexImage code, much cleaner, may be a bit faster
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ software driver:
|
|||
<li>MESA_GLX_FX - set to either "fullscreen" for full-screen rendering,
|
||||
"window" to render into a window, or "disable" to disable the Glide driver.
|
||||
<li>MESA_GLX_FORCE_ALPHA - if set, forces RGB windows to have an alpha channel.
|
||||
<li>MESA_GLX_DEPTH_BITS - specifies default number of bits for depth buffer.
|
||||
</ul>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -339,6 +339,25 @@ save_glx_visual( Display *dpy, XVisualInfo *vinfo,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return the default number of bits for the Z buffer.
|
||||
* If defined, use the MESA_GLX_DEPTH_BITS env var value.
|
||||
* Otherwise, use the DEFAULT_SOFTWARE_DEPTH_BITS constant.
|
||||
* XXX probably do the same thing for stencil, accum, etc.
|
||||
*/
|
||||
static GLint
|
||||
default_depth_bits(void)
|
||||
{
|
||||
int zBits;
|
||||
const char *zEnv = _mesa_getenv("MESA_GLX_DEPTH_BITS");
|
||||
if (zEnv)
|
||||
zBits = _mesa_atoi(zEnv);
|
||||
else
|
||||
zBits = DEFAULT_SOFTWARE_DEPTH_BITS;
|
||||
return zBits;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Create a GLX visual from a regular XVisualInfo.
|
||||
|
|
@ -352,6 +371,7 @@ static XMesaVisual
|
|||
create_glx_visual( Display *dpy, XVisualInfo *visinfo )
|
||||
{
|
||||
int vislevel;
|
||||
GLint zBits = default_depth_bits();
|
||||
|
||||
vislevel = level_of_visual( dpy, visinfo );
|
||||
if (vislevel) {
|
||||
|
|
@ -376,7 +396,7 @@ create_glx_visual( Display *dpy, XVisualInfo *visinfo )
|
|||
GL_FALSE, /* alpha */
|
||||
GL_TRUE, /* double */
|
||||
GL_FALSE, /* stereo */
|
||||
DEFAULT_SOFTWARE_DEPTH_BITS,
|
||||
zBits,
|
||||
8 * sizeof(GLstencil),
|
||||
0 * sizeof(GLaccum), /* r */
|
||||
0 * sizeof(GLaccum), /* g */
|
||||
|
|
@ -395,7 +415,7 @@ create_glx_visual( Display *dpy, XVisualInfo *visinfo )
|
|||
GL_FALSE, /* alpha */
|
||||
GL_TRUE, /* double */
|
||||
GL_FALSE, /* stereo */
|
||||
DEFAULT_SOFTWARE_DEPTH_BITS,
|
||||
zBits,
|
||||
8 * sizeof(GLstencil),
|
||||
8 * sizeof(GLaccum), /* r */
|
||||
8 * sizeof(GLaccum), /* g */
|
||||
|
|
@ -1131,7 +1151,7 @@ static XMesaVisual choose_visual( Display *dpy, int screen, const int *list,
|
|||
double_flag = GL_TRUE;
|
||||
if (vis->depth > 8)
|
||||
rgb_flag = GL_TRUE;
|
||||
depth_size = DEFAULT_SOFTWARE_DEPTH_BITS;
|
||||
depth_size = default_depth_bits();
|
||||
stencil_size = STENCIL_BITS;
|
||||
/* XXX accum??? */
|
||||
}
|
||||
|
|
@ -1182,8 +1202,9 @@ static XMesaVisual choose_visual( Display *dpy, int screen, const int *list,
|
|||
depth_size = 31; /* 32 causes int overflow problems */
|
||||
else if (depth_size > 16)
|
||||
depth_size = 24;
|
||||
else if (depth_size > 0)
|
||||
depth_size = DEFAULT_SOFTWARE_DEPTH_BITS; /*16*/
|
||||
else if (depth_size > 0) {
|
||||
depth_size = default_depth_bits();
|
||||
}
|
||||
|
||||
/* we only support one size of stencil and accum buffers. */
|
||||
if (stencil_size > 0)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue