Define_Driver_Config

Functions

void Define_Driver_Config (const char *driver, const char *id, const char *version, const char *config)
 Sets up driver device-dependent configuration. More...
 

Detailed Description

Function Documentation

◆ Define_Driver_Config()

void Define_Driver_Config ( const char *  driver,
const char *  id,
const char *  version,
const char *  config 
)

Sets up driver device-dependent configuration.

Parameters
driver- The driver to configure.
id- The driver ID string.
version- Constraints (by default, a lower bound) on the driver version.
config- A pre-defined configuration string of comma-separated values. See below for details.

DETAILS

Define_Driver_Config invokes certain driver configurations, such as graphics-card-dependent logic, withough forcing the user to recompile the driver code. In order to take effect, this function must be called before driver startup. After the first update, the driver config cannot be changed without shutting down the driver and starting a new one. This feature is only available for 3D drivers (DX11, OpenGL, and OpenGL2).

This function should not be needed unless there are specific hardware problems that must be avoided. Unless absolutely needed, it is best not to attempt to use this unless instructed by Tech Soft Support.

driver, id and version can all take '*' as a wildcard.

version should be formatted as a list of decimal-separated integers (e.g. "8.5.7.4" or "8.301"), optionally prepended with >=, <=,!=, > or < to specify the comparison type.
The comparison between specified and actual versions proceeds one integer (repeat: one complete integer, not just one digit) at a time, and halts when it either comes to the end of one list or the other. If it reacheas the end or a "*", the versions are considered equal. The supplied string is considered a match on its non-wildcard characters if the actual driver string as extracted from the registry or environment is equal to or greater than the supplied list. Examples:

     8.99 is less than 8.301
     8.4.9 is less than 8.5.7.4
     8.5 is equal to 8.5.7.4
     8.4.7.4 is equal to 8.5

If no comparison type is given, >= is assumed.

config is a comma-separated list of options. Valid choices for config include:

reset

Restores the built in defaults for Radeon cards. For example:


    HC_Define_Driver_Config ("opengl", "radeon*", "*", "reset");

flush

Removes all configs for Radeon cards. For example:


    HC_Define_Driver_Config ("opengl", "radeon*", "*", "flush");

tristrip minimum = ddd

Controls when tristrips or triangle primitives are used to draw tristrips. Driver dependent. Currently supported only with OpenGL.

display list tristrip minimum = ddd

Controls when tristrips or triangle primitives are used to draw tristrips. Driver dependent. Currently supported only with OpenGL.

flat tristrip minimum = ddd

Controls when tristrips or triangle primitives are used to draw tristrips. Driver dependent. Currently supported only with OpenGL.

flat display list tristrip minimum = ddd

Controls when tristrips or triangle primitives are used to draw tristrips. Driver dependent. Currently supported only with OpenGL.

general tristrip minimum = ddd

Sets all four of the above setting to one value. Driver dependent. Currently supported only with OpenGL.

config = (token, token, token, ...)

A list of special strings to control the way the driver behaves. In general these are workarounds for hardware bugs. Driver dependent.


Valid choices for OpenGL 1 ("opengl1_deprecated" driver):

4142_WORKAROUND ALLOW_DRAWPIXEL_RESTORE BAD_16BIT_ACCUMULATION_BUFFER BAD_ACCUMULATION_BUFFER
BAD_CUT_POINTS BAD_DISPLAY_LIST BAD_ELEMENT_BUFFER BAD_FLAT_VERTEX_ARRAYS
BAD_FRAGMENT_PROGRAM BAD_KTX BAD_NONDL_VERTEX_ARRAYS BAD_MULTILIGHT
BAD_OVERLAY BAD_PATTERNED_LINES BAD_PBUFFER BAD_PIXEL_STORE
BAD_PHONG BAD_MULTIPLE_CLIP_PLANES BAD_MSAA_ACCUMULATION_BUFFER BAD_MSAA_WGL_ARB_BUFFER
BAD_SCISSORING BAD_SEPARATE_SPECULAR BAD_SINGLE_BUFFERING BAD_SPOTLIGHT_TEXTURE
BAD_STENCIL BAD_TEXTURE_RECTANGLE BAD_TRANSPARENT_POINT BAD_TWO_SIDED_LIGHTING
BAD_VERTEX_ARRAYS BAD_VERTEX_BUFFER_OBJECT BAD_WGL_ARB_BUFFER DELAYED_VERTEX_ARRAYS
DOUBLE_BUFFER_COPY_ONLY DOUBLE_BUFFER_SWAP_ONLY EYE_SPACE_DEPTH FLAT_TRISTRIP_MISMATCH
FORCE_DEFAULT_SOFTWARE FORCE_OLD_CHOOSE_PIXEL_FORMAT LIES_ABOUT_SWAP LINE_PATTERN_NEEDS_BLENDING
PIXEL_OPERATIONS_EXPENSIVE RASTERS_AS_VERTICES RESTORE_REGION_ZBUFFER_OFF SLOW_MSAA_DEPTH_TEXTURE
SLOW_PEELED_LINESMOOTH UNDRAW_OVERLAY_FRONT_AND_BACK WGL_ARB_BUFFER_1024_LIMIT

Valid choices for DirectX11 are:
XBIT_NONE
XBIT_FORCE_SM3
XBIT_SLOW_PIXEL_OIT
XBIT_FORCE_STANDARD_MULTISAMPLE_PATTERN
XBIT_BAD_RESOLVE_TO_BACK_BUFFER
XBIT_BAD_DEPTH_ONLY_CLEAR
FORCE_DEFAULT_SOFTWARE


OpenGL 2 users:
XBIT_NONE
XBIT_BAD_MSAA_SPRITING
XBIT_BAD_NON_POWER_OF_2_TEXTURES
XBIT_TEXTURE_SIZE_OFF_BY_ONE
XBIT_BAD_GLSL4_SAMPLER_CUBE
XBIT_FORCE_GLSL2
XBIT_BAD_BLIT_FILTER
XBIT_BROKEN
XBIT_NO_ANTIALIAS
XBIT_AMD_BAD_DOUBLE_PRECISION
XBIT_BAD_POINT_SPRITES
XBIT_AMD_BAD_RGB24_TEXTURE
XBIT_ANDROID_BAD_BLIT_TO_BACK_BUFFER
XBIT_BAD_CONTEXT_SHARING
XBIT_FORCE_NO_DEPTH_COPY
XBIT_BAD_SHADER_DERIVATIVES

Please note that FORCE_DEFAULT_SOFTWARE is not an available option for OpenGL 2 drivers.

NOTES

No show type interface defined yet.

See also
Set_Driver_Options