* pipe_screen::get_param() and pipe_screen::get_paramf().
*/
enum pipe_cap {
- PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS,
- PIPE_CAP_NPOT_TEXTURES,
- PIPE_CAP_TWO_SIDED_STENCIL,
- PIPE_CAP_GLSL, /* XXX need something better */
- PIPE_CAP_DUAL_SOURCE_BLEND,
- PIPE_CAP_ANISOTROPIC_FILTER,
- PIPE_CAP_POINT_SPRITE,
- PIPE_CAP_MAX_RENDER_TARGETS,
- PIPE_CAP_OCCLUSION_QUERY,
- PIPE_CAP_TIMER_QUERY,
- PIPE_CAP_TEXTURE_SHADOW_MAP,
- PIPE_CAP_TEXTURE_SWIZZLE,
- PIPE_CAP_MAX_TEXTURE_2D_LEVELS,
- PIPE_CAP_MAX_TEXTURE_3D_LEVELS,
- PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS,
- PIPE_CAP_MAX_LINE_WIDTH,
- PIPE_CAP_MAX_LINE_WIDTH_AA,
- PIPE_CAP_MAX_POINT_WIDTH,
- PIPE_CAP_MAX_POINT_WIDTH_AA,
- PIPE_CAP_MAX_TEXTURE_ANISOTROPY,
- PIPE_CAP_MAX_TEXTURE_LOD_BIAS,
- PIPE_CAP_GUARD_BAND_LEFT, /*< float */
- PIPE_CAP_GUARD_BAND_TOP, /*< float */
- PIPE_CAP_GUARD_BAND_RIGHT, /*< float */
- PIPE_CAP_GUARD_BAND_BOTTOM, /*< float */
- PIPE_CAP_TEXTURE_MIRROR_CLAMP,
- PIPE_CAP_TEXTURE_MIRROR_REPEAT,
- PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS,
- PIPE_CAP_BLEND_EQUATION_SEPARATE,
- PIPE_CAP_SM3, /*< Shader Model, supported */
- PIPE_CAP_STREAM_OUTPUT,
- PIPE_CAP_PRIMITIVE_RESTART,
+ PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS = 0,
+ PIPE_CAP_NPOT_TEXTURES = 1,
+ PIPE_CAP_TWO_SIDED_STENCIL = 2,
+ PIPE_CAP_GLSL = 3, /* XXX need something better */
+ PIPE_CAP_DUAL_SOURCE_BLEND = 4,
+ PIPE_CAP_ANISOTROPIC_FILTER = 5,
+ PIPE_CAP_POINT_SPRITE = 6,
+ PIPE_CAP_MAX_RENDER_TARGETS = 7,
+ PIPE_CAP_OCCLUSION_QUERY = 8,
+ PIPE_CAP_TIMER_QUERY = 9,
+ PIPE_CAP_TEXTURE_SHADOW_MAP = 10,
+ PIPE_CAP_TEXTURE_SWIZZLE = 11,
+ PIPE_CAP_MAX_TEXTURE_2D_LEVELS = 12,
+ PIPE_CAP_MAX_TEXTURE_3D_LEVELS = 13,
+ PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS = 14,
+ PIPE_CAP_MAX_LINE_WIDTH = 15,
+ PIPE_CAP_MAX_LINE_WIDTH_AA = 16,
+ PIPE_CAP_MAX_POINT_WIDTH = 17,
+ PIPE_CAP_MAX_POINT_WIDTH_AA = 18,
+ PIPE_CAP_MAX_TEXTURE_ANISOTROPY = 19,
+ PIPE_CAP_MAX_TEXTURE_LOD_BIAS = 20,
+ PIPE_CAP_GUARD_BAND_LEFT = 21, /*< float */
+ PIPE_CAP_GUARD_BAND_TOP = 22, /*< float */
+ PIPE_CAP_GUARD_BAND_RIGHT = 23, /*< float */
+ PIPE_CAP_GUARD_BAND_BOTTOM = 24, /*< float */
+ PIPE_CAP_TEXTURE_MIRROR_CLAMP = 25,
+ PIPE_CAP_TEXTURE_MIRROR_REPEAT = 26,
+ PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS = 27,
+ PIPE_CAP_BLEND_EQUATION_SEPARATE = 28,
+ PIPE_CAP_SM3 = 29, /*< Shader Model, supported */
+ PIPE_CAP_STREAM_OUTPUT = 30,
+ PIPE_CAP_PRIMITIVE_RESTART = 31,
/** Maximum texture image units accessible from vertex and fragment shaders
* combined */
- PIPE_CAP_MAX_COMBINED_SAMPLERS,
+ PIPE_CAP_MAX_COMBINED_SAMPLERS = 32,
/** blend enables and write masks per rendertarget */
- PIPE_CAP_INDEP_BLEND_ENABLE,
+ PIPE_CAP_INDEP_BLEND_ENABLE = 33,
/** different blend funcs per rendertarget */
- PIPE_CAP_INDEP_BLEND_FUNC,
- PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE,
- PIPE_CAP_ARRAY_TEXTURES,
- PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT,
- PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT,
- PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER,
- PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER,
- PIPE_CAP_DEPTH_CLAMP,
- PIPE_CAP_SHADER_STENCIL_EXPORT,
- PIPE_CAP_TGSI_INSTANCEID,
- PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR,
- PIPE_CAP_FRAGMENT_COLOR_CLAMP_CONTROL
+ PIPE_CAP_INDEP_BLEND_FUNC = 34,
+ PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE = 35,
+ PIPE_CAP_ARRAY_TEXTURES = 36,
+ PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT = 37,
+ PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT = 38,
+ PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER = 39,
+ PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER = 40,
+ PIPE_CAP_DEPTH_CLAMP = 41,
+ PIPE_CAP_SHADER_STENCIL_EXPORT = 42,
+ PIPE_CAP_TGSI_INSTANCEID = 43,
+ PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR = 44,
+ PIPE_CAP_FRAGMENT_COLOR_CLAMP_CONTROL = 45,
};
/* Shader caps not specific to any single stage */
enum pipe_shader_cap
{
- PIPE_SHADER_CAP_MAX_INSTRUCTIONS, /* if 0, it means the stage is unsupported */
- PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS,
- PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS,
- PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS,
- PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH,
- PIPE_SHADER_CAP_MAX_INPUTS,
- PIPE_SHADER_CAP_MAX_CONSTS,
- PIPE_SHADER_CAP_MAX_CONST_BUFFERS,
- PIPE_SHADER_CAP_MAX_TEMPS,
- PIPE_SHADER_CAP_MAX_ADDRS,
- PIPE_SHADER_CAP_MAX_PREDS,
+ PIPE_SHADER_CAP_MAX_INSTRUCTIONS = 0, /* if 0, it means the stage is unsupported */
+ PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS = 1,
+ PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS = 2,
+ PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS = 3,
+ PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH = 4,
+ PIPE_SHADER_CAP_MAX_INPUTS = 5,
+ PIPE_SHADER_CAP_MAX_CONSTS = 6,
+ PIPE_SHADER_CAP_MAX_CONST_BUFFERS = 7,
+ PIPE_SHADER_CAP_MAX_TEMPS = 8,
+ PIPE_SHADER_CAP_MAX_ADDRS = 9,
+ PIPE_SHADER_CAP_MAX_PREDS = 10,
/* boolean caps */
- PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED,
- PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR,
- PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR,
- PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR,
- PIPE_SHADER_CAP_INDIRECT_CONST_ADDR,
- PIPE_SHADER_CAP_SUBROUTINES, /* BGNSUB, ENDSUB, CAL, RET */
+ PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED = 11,
+ PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR = 12,
+ PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR = 13,
+ PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR = 14,
+ PIPE_SHADER_CAP_INDIRECT_CONST_ADDR = 15,
+ PIPE_SHADER_CAP_SUBROUTINES = 16, /* BGNSUB, ENDSUB, CAL, RET */
};