X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Finclude%2Fpipe%2Fp_defines.h;h=bea0c96b7ce1fb66464dc004559e3b8edc487fec;hb=877128505431adaf817dc8069172ebe4a1cdf5d8;hp=a751b8aebbd8ec6fa24b873037b7c1671650c570;hpb=a0281c4a8c056d0873a18ec790563362f37f0e74;p=mesa.git diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index a751b8aebbd..bea0c96b7ce 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2007 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +18,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -188,11 +188,22 @@ enum pipe_texture_target { /** * Clear buffer bits */ +#define PIPE_CLEAR_DEPTH (1 << 0) +#define PIPE_CLEAR_STENCIL (1 << 1) +#define PIPE_CLEAR_COLOR0 (1 << 2) +#define PIPE_CLEAR_COLOR1 (1 << 3) +#define PIPE_CLEAR_COLOR2 (1 << 4) +#define PIPE_CLEAR_COLOR3 (1 << 5) +#define PIPE_CLEAR_COLOR4 (1 << 6) +#define PIPE_CLEAR_COLOR5 (1 << 7) +#define PIPE_CLEAR_COLOR6 (1 << 8) +#define PIPE_CLEAR_COLOR7 (1 << 9) +/** Combined flags */ /** All color buffers currently bound */ -#define PIPE_CLEAR_COLOR (1 << 0) -#define PIPE_CLEAR_DEPTH (1 << 1) -#define PIPE_CLEAR_STENCIL (1 << 2) -/** Depth/stencil combined */ +#define PIPE_CLEAR_COLOR (PIPE_CLEAR_COLOR0 | PIPE_CLEAR_COLOR1 | \ + PIPE_CLEAR_COLOR2 | PIPE_CLEAR_COLOR3 | \ + PIPE_CLEAR_COLOR4 | PIPE_CLEAR_COLOR5 | \ + PIPE_CLEAR_COLOR6 | PIPE_CLEAR_COLOR7) #define PIPE_CLEAR_DEPTHSTENCIL (PIPE_CLEAR_DEPTH | PIPE_CLEAR_STENCIL) /** @@ -288,6 +299,12 @@ enum pipe_transfer_usage { }; +/** + * Flags for the flush function. + */ +enum pipe_flush_flags { + PIPE_FLUSH_END_OF_FRAME = (1 << 0) +}; /* * Resource binding flags -- state tracker must specify in advance all @@ -324,9 +341,13 @@ enum pipe_transfer_usage { * The shared flag is quite underspecified, but certainly isn't a * binding flag - it seems more like a message to the winsys to create * a shareable allocation. + * + * The third flag has been added to be able to force textures to be created + * in linear mode (no tiling). */ #define PIPE_BIND_SCANOUT (1 << 14) /* */ #define PIPE_BIND_SHARED (1 << 15) /* get_texture_handle ??? */ +#define PIPE_BIND_LINEAR (1 << 21) /* Flags for the driver about resource behaviour: @@ -391,6 +412,10 @@ enum pipe_transfer_usage { #define PIPE_QUERY_PIPELINE_STATISTICS 10 #define PIPE_QUERY_TYPES 11 +/* start of driver queries, + * see pipe_screen::get_driver_query_info */ +#define PIPE_QUERY_DRIVER_SPECIFIC 256 + /** * Conditional rendering modes @@ -433,7 +458,7 @@ enum pipe_cap { PIPE_CAP_POINT_SPRITE = 6, PIPE_CAP_MAX_RENDER_TARGETS = 7, PIPE_CAP_OCCLUSION_QUERY = 8, - PIPE_CAP_TIMER_QUERY = 9, + PIPE_CAP_QUERY_TIME_ELAPSED = 9, PIPE_CAP_TEXTURE_SHADOW_MAP = 10, PIPE_CAP_TEXTURE_SWIZZLE = 11, PIPE_CAP_MAX_TEXTURE_2D_LEVELS = 12, @@ -451,7 +476,6 @@ enum pipe_cap { PIPE_CAP_INDEP_BLEND_ENABLE = 33, /** different blend funcs per rendertarget */ PIPE_CAP_INDEP_BLEND_FUNC = 34, - PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE = 35, PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS = 36, PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT = 37, PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT = 38, @@ -473,7 +497,6 @@ enum pipe_cap { PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS = 55, PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS = 56, PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME = 57, - PIPE_CAP_TGSI_CAN_COMPACT_VARYINGS = 58, /* temporary */ PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS = 59, /* temporary */ PIPE_CAP_VERTEX_COLOR_UNCLAMPED = 60, PIPE_CAP_VERTEX_COLOR_CLAMPED = 61, @@ -492,7 +515,30 @@ enum pipe_cap { PIPE_CAP_TEXTURE_MULTISAMPLE = 74, PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT = 75, PIPE_CAP_CUBE_MAP_ARRAY = 76, - PIPE_CAP_TEXTURE_BUFFER_OBJECTS = 77 + PIPE_CAP_TEXTURE_BUFFER_OBJECTS = 77, + PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 78, + PIPE_CAP_TGSI_TEXCOORD = 79, + PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER = 80, + PIPE_CAP_QUERY_PIPELINE_STATISTICS = 81, + PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK = 82, + PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE = 83, + PIPE_CAP_MAX_VIEWPORTS = 84, + PIPE_CAP_ENDIANNESS = 85, + PIPE_CAP_MIXED_FRAMEBUFFER_SIZES = 86, + PIPE_CAP_TGSI_VS_LAYER = 87 +}; + +#define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0) +#define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600 (1 << 1) + +enum pipe_endian { + PIPE_ENDIAN_LITTLE = 0, + PIPE_ENDIAN_BIG = 1, +#if defined(PIPE_ARCH_LITTLE_ENDIAN) + PIPE_ENDIAN_NATIVE = PIPE_ENDIAN_LITTLE +#elif defined(PIPE_ARCH_BIG_ENDIAN) + PIPE_ENDIAN_NATIVE = PIPE_ENDIAN_BIG +#endif }; /** @@ -536,7 +582,9 @@ enum pipe_shader_cap PIPE_SHADER_CAP_SUBROUTINES = 16, /* BGNSUB, ENDSUB, CAL, RET */ PIPE_SHADER_CAP_INTEGERS = 17, PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS = 18, - PIPE_SHADER_CAP_PREFERRED_IR = 19 + PIPE_SHADER_CAP_PREFERRED_IR = 19, + PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED = 20, + PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS = 21 }; /** @@ -640,6 +688,14 @@ union pipe_color_union unsigned int ui[4]; }; +struct pipe_driver_query_info +{ + const char *name; + unsigned query_type; /* PIPE_QUERY_DRIVER_SPECIFIC + i */ + uint64_t max_value; /* max value that can be returned */ + boolean uses_byte_units; /* whether the result is in bytes */ +}; + #ifdef __cplusplus } #endif