X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fmtypes.h;h=de10ba39a29afaf26867de453b4e4942649be380;hb=b55b033f7624171d82ae1f79f3d3ad058ae0ac56;hp=084510b2a24115588bcbee17e59141919ecc0c77;hpb=a8b71f2db86d63fb1dbc2da88b7e1e326b1b90b2;p=mesa.git diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 084510b2a24..de10ba39a29 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -39,6 +39,7 @@ #include "c11/threads.h" #include "main/glheader.h" +#include "main/glthread.h" #include "main/menums.h" #include "main/config.h" #include "glapi/glapi.h" @@ -77,6 +78,7 @@ struct prog_instruction; struct gl_program_parameter_list; struct gl_shader_spirv_data; struct set; +struct shader_includes; struct vbo_context; /*@}*/ @@ -103,6 +105,7 @@ _mesa_varying_slot_in_fs(gl_varying_slot slot) case VARYING_SLOT_TESS_LEVEL_INNER: case VARYING_SLOT_BOUNDING_BOX0: case VARYING_SLOT_BOUNDING_BOX1: + case VARYING_SLOT_VIEWPORT_MASK: return GL_FALSE; default: return GL_TRUE; @@ -159,19 +162,14 @@ _mesa_varying_slot_in_fs(gl_varying_slot slot) */ struct gl_config { - GLboolean rgbMode; GLboolean floatMode; GLuint doubleBufferMode; GLuint stereoMode; - GLboolean haveAccumBuffer; - GLboolean haveDepthBuffer; - GLboolean haveStencilBuffer; - GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */ GLuint redMask, greenMask, blueMask, alphaMask; + GLint redShift, greenShift, blueShift, alphaShift; GLint rgbBits; /* total bits for rgb */ - GLint indexBits; /* total bits for colorindex */ GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; GLint depthBits; @@ -456,6 +454,22 @@ struct gl_colorbuffer_attrib }; +/** + * Vertex format to describe a vertex element. + */ +struct gl_vertex_format +{ + GLenum16 Type; /**< datatype: GL_FLOAT, GL_INT, etc */ + GLenum16 Format; /**< default: GL_RGBA, but may be GL_BGRA */ + enum pipe_format _PipeFormat:16; /**< pipe_format for Gallium */ + GLubyte Size:5; /**< components per element (1,2,3,4) */ + GLubyte Normalized:1; /**< GL_ARB_vertex_program */ + GLubyte Integer:1; /**< Integer-valued? */ + GLubyte Doubles:1; /**< double values are not converted to floats */ + GLubyte _ElementSize; /**< Size of each element in bytes */ +}; + + /** * Current attribute group (GL_CURRENT_BIT). */ @@ -588,6 +602,7 @@ struct gl_hint_attrib GLenum16 TextureCompression; /**< GL_ARB_texture_compression */ GLenum16 GenerateMipmap; /**< GL_SGIS_generate_mipmap */ GLenum16 FragmentShaderDerivative; /**< GL_ARB_fragment_shader */ + GLuint MaxShaderCompilerThreads; /**< GL_ARB_parallel_shader_compile */ }; @@ -1282,7 +1297,8 @@ struct gl_transform_attrib GLboolean Normalize; /**< Normalize all normals? */ GLboolean RescaleNormals; /**< GL_EXT_rescale_normal */ GLboolean RasterPositionUnclipped; /**< GL_IBM_rasterpos_clip */ - GLboolean DepthClamp; /**< GL_ARB_depth_clamp */ + GLboolean DepthClampNear; /**< GL_AMD_depth_clamp_separate */ + GLboolean DepthClampFar; /**< GL_AMD_depth_clamp_separate */ /** GL_ARB_clip_control */ GLenum16 ClipOrigin; /**< GL_LOWER_LEFT or GL_UPPER_LEFT */ GLenum16 ClipDepthMode;/**< GL_NEGATIVE_ONE_TO_ONE or GL_ZERO_TO_ONE */ @@ -1297,6 +1313,9 @@ struct gl_viewport_attrib GLfloat X, Y; /**< position */ GLfloat Width, Height; /**< size */ GLfloat Near, Far; /**< Depth buffer range */ + + /**< GL_NV_viewport_swizzle */ + GLenum16 SwizzleX, SwizzleY, SwizzleZ, SwizzleW; }; @@ -1323,7 +1342,9 @@ typedef enum USAGE_SHADER_STORAGE_BUFFER = 0x8, USAGE_TRANSFORM_FEEDBACK_BUFFER = 0x10, USAGE_PIXEL_PACK_BUFFER = 0x20, - USAGE_DISABLE_MINMAX_CACHE = 0x40, + USAGE_ARRAY_BUFFER = 0x40, + USAGE_ELEMENT_ARRAY_BUFFER = 0x80, + USAGE_DISABLE_MINMAX_CACHE = 0x100, } gl_buffer_usage; @@ -1418,17 +1439,12 @@ struct gl_array_attributes const GLubyte *Ptr; /** Offset of the first element relative to the binding offset */ GLuint RelativeOffset; - GLshort Stride; /**< Stride as specified with gl*Pointer() */ - GLenum16 Type; /**< Datatype: GL_FLOAT, GL_INT, etc */ - GLenum16 Format; /**< Default: GL_RGBA, but may be GL_BGRA */ - GLboolean Enabled; /**< Whether the array is enabled */ - GLubyte Size; /**< Components per element (1,2,3,4) */ - unsigned Normalized:1; /**< Fixed-point values are normalized when converted to floats */ - unsigned Integer:1; /**< Fixed-point values are not converted to floats */ - unsigned Doubles:1; /**< double precision values are not converted to floats */ - unsigned _ElementSize:8; /**< Size of each element in bytes */ + /** Vertex format */ + struct gl_vertex_format Format; + /** Stride as specified with gl*Pointer() */ + GLshort Stride; /** Index into gl_vertex_array_object::BufferBinding[] array */ - unsigned BufferBindingIndex:6; + GLubyte BufferBindingIndex; /** * Derived effective buffer binding index @@ -1443,7 +1459,7 @@ struct gl_array_attributes * Note that _mesa_update_vao_derived_arrays is called when binding * the VAO to Array._DrawVAO. */ - unsigned _EffBufferBindingIndex:6; + GLubyte _EffBufferBindingIndex; /** * Derived effective relative offset. * @@ -1536,8 +1552,11 @@ struct gl_vertex_array_object /** Mask indicating which vertex arrays have vertex buffer associated. */ GLbitfield VertexAttribBufferMask; + /** Mask indicating which vertex arrays have a non-zero instance divisor. */ + GLbitfield NonZeroDivisorMask; + /** Mask of VERT_BIT_* values indicating which arrays are enabled */ - GLbitfield _Enabled; + GLbitfield Enabled; /** * Mask of VERT_BIT_* enabled arrays past position/generic0 mapping @@ -1548,6 +1567,9 @@ struct gl_vertex_array_object */ GLbitfield _EffEnabledVBO; + /** Same as _EffEnabledVBO, but for instance divisors. */ + GLbitfield _EffEnabledNonZeroDivisor; + /** Denotes the way the position/generic0 attribute is mapped */ gl_attribute_map_mode _AttributeMapMode; @@ -1573,6 +1595,9 @@ struct gl_array_attrib /** The last VAO accessed by a DSA function */ struct gl_vertex_array_object *LastLookedUpVAO; + /** These contents are copied to newly created VAOs. */ + struct gl_vertex_array_object DefaultVAOState; + /** Array objects (GL_ARB_vertex_array_object) */ struct _mesa_HashTable *Objects; @@ -1591,6 +1616,7 @@ struct gl_array_attrib GLboolean PrimitiveRestartFixedIndex; GLboolean _PrimitiveRestart; GLuint RestartIndex; + GLuint _RestartIndex[4]; /**< Restart indices for index_size - 1. */ /*@}*/ /* GL_ARB_vertex_buffer_object */ @@ -2013,7 +2039,9 @@ struct gl_bindless_image /** Whether this bindless image is bound to a unit. */ GLboolean bound; - /** Access qualifier (GL_READ_WRITE, GL_READ_ONLY, GL_WRITE_ONLY) */ + /** Access qualifier (GL_READ_WRITE, GL_READ_ONLY, GL_WRITE_ONLY, or + * GL_NONE to indicate both read-only and write-only) + */ GLenum16 access; /** Pointer to the base of the data. */ @@ -2063,6 +2091,21 @@ struct gl_program /** Is this program written to on disk shader cache */ bool program_written_to_cache; + /** A bitfield indicating which vertex shader inputs consume two slots + * + * This is used for mapping from single-slot input locations in the GL API + * to dual-slot double input locations in the shader. This field is set + * once as part of linking and never updated again to ensure the mapping + * remains consistent. + * + * Note: There may be dual-slot variables in the original shader source + * which do not appear in this bitfield due to having been eliminated by + * the compiler prior to DualSlotInputs being calculated. There may also + * be bits set in this bitfield which are set but which the shader never + * reads due to compiler optimizations eliminating such variables after + * DualSlotInputs is calculated. + */ + GLbitfield64 DualSlotInputs; /** Subset of OutputsWritten outputs written with non-zero index. */ GLbitfield64 SecondaryOutputsWritten; /** TEXTURE_x_BIT bitmask */ @@ -2074,10 +2117,6 @@ struct gl_program /** Texture units used for samplerExternalOES */ GLbitfield ExternalSamplersUsed; - /* Fragement shader only fields */ - GLboolean OriginUpperLeft; - GLboolean PixelCenterInteger; - /** Named parameters, constants, etc. from program text */ struct gl_program_parameter_list *Parameters; @@ -2130,8 +2169,9 @@ struct gl_program /** * Access qualifier specified in the shader for each image uniform - * index. Either \c GL_READ_ONLY, \c GL_WRITE_ONLY or \c - * GL_READ_WRITE. + * index. Either \c GL_READ_ONLY, \c GL_WRITE_ONLY, \c + * GL_READ_WRITE, or \c GL_NONE to indicate both read-only and + * write-only. * * It may be different, though only more strict than the value of * \c gl_image_unit::Access for the corresponding image unit. @@ -2141,6 +2181,11 @@ struct gl_program struct gl_uniform_block **UniformBlocks; struct gl_uniform_block **ShaderStorageBlocks; + /** + * Bitmask of shader storage blocks not declared as read-only. + */ + unsigned ShaderStorageBlocksWriteAccess; + /** Which texture target is being sampled * (TEXTURE_1D/2D/3D/etc_INDEX) */ @@ -2483,6 +2528,12 @@ struct gl_shader_info * ARB_compute_variable_group_size. */ bool LocalSizeVariable; + + /* + * Arrangement of invocations used to calculate derivatives in a compute + * shader. From NV_compute_shader_derivatives. + */ + enum gl_derivative_group DerivativeGroup; } Comp; }; @@ -2547,8 +2598,7 @@ enum gl_compile_status { COMPILE_FAILURE = 0, COMPILE_SUCCESS, - COMPILE_SKIPPED, - COMPILED_NO_OPTS + COMPILE_SKIPPED }; /** @@ -2624,6 +2674,12 @@ struct gl_shader bool bound_sampler; bool bound_image; + /** + * Whether layer output is viewport-relative. + */ + bool redeclares_gl_layer; + bool layer_viewport_relative; + /** Global xfb_stride out qualifier if any */ GLuint TransformFeedbackBufferStride[MAX_FEEDBACK_BUFFERS]; @@ -2883,6 +2939,9 @@ struct gl_shader_program_data */ union gl_constant_value *UniformDataDefaults; + /** Hash for quick search by name. */ + struct hash_table_u64 *ProgramResourceHash; + GLboolean Validated; /** List of all active resources after linking. */ @@ -2918,8 +2977,13 @@ struct gl_shader_program /** * Is the application intending to glGetProgramBinary this program? + * + * BinaryRetrievableHint is the currently active hint that gets set + * during initialization and after linking and BinaryRetrievableHintPending + * is the hint set by the user to be active when program is linked next time. */ - GLboolean BinaryRetreivableHint; + GLboolean BinaryRetrievableHint; + GLboolean BinaryRetrievableHintPending; /** * Indicates whether program can be bound for individual pipeline stages @@ -3125,6 +3189,15 @@ struct gl_shader_compiler_options * gl_CullDistance together from * float[8] to vec4[2] **/ + GLbitfield LowerBuiltinVariablesXfb; /**< Which builtin variables should + * be lowered for transform feedback + **/ + + /** + * If we can lower the precision of variables based on precision + * qualifiers + */ + GLboolean LowerPrecision; /** * \name Forms of indirect addressing the driver cannot do. @@ -3155,6 +3228,9 @@ struct gl_shader_compiler_options /** Clamp UBO and SSBO block indices so they don't go out-of-bounds. */ GLboolean ClampBlockIndicesToArrayBounds; + /** (driconf) Force gl_Position to be considered invariant */ + GLboolean PositionAlwaysInvariant; + const struct nir_shader_compiler_options *NirOptions; }; @@ -3248,9 +3324,6 @@ struct gl_shared_state GLuint TextureStateStamp; /**< state notification for shared tex */ /*@}*/ - /** Default buffer object for vertex arrays that aren't in VBOs */ - struct gl_buffer_object *NullBufferObj; - /** * \name Vertex/geometry/fragment programs */ @@ -3284,6 +3357,13 @@ struct gl_shared_state struct hash_table_u64 *ImageHandles; mtx_t HandlesMutex; /**< For texture/image handles safety */ + /* GL_ARB_shading_language_include */ + struct shader_includes *ShaderIncludes; + /* glCompileShaderInclude expects ShaderIncludes not to change while it is + * in progress. + */ + mtx_t ShaderIncludeMutex; + /** * Some context in this share group was affected by a GPU reset * @@ -3385,6 +3465,7 @@ struct gl_renderbuffer_attachment */ struct gl_texture_object *Texture; GLuint TextureLevel; /**< Attached mipmap level. */ + GLsizei NumSamples; /**< from FramebufferTexture2DMultisampleEXT */ GLuint CubeMapFace; /**< 0 .. 5, for cube map textures. */ GLuint Zoffset; /**< Slice for 3D textures, or layer for both 1D * and 2D array textures */ @@ -3476,6 +3557,8 @@ struct gl_framebuffer bool _HasAttachments; GLbitfield _IntegerBuffers; /**< Which color buffers are integer valued */ + GLbitfield _RGBBuffers; /**< Which color buffers have baseformat == RGB */ + GLbitfield _FP32Buffers; /**< Which color buffers are FP32 */ /* ARB_color_buffer_float */ GLboolean _AllColorBuffersFixedPoint; /* no integer, no float */ @@ -3587,7 +3670,7 @@ struct gl_program_constants struct gl_precision LowInt, MediumInt, HighInt; /* GL_ARB_uniform_buffer_object */ GLuint MaxUniformBlocks; - GLuint MaxCombinedUniformComponents; + uint64_t MaxCombinedUniformComponents; GLuint MaxTextureImageUnits; /* GL_ARB_shader_atomic_counters */ @@ -3608,7 +3691,7 @@ struct gl_program_constants struct gl_constants { GLuint MaxTextureMbytes; /**< Max memory per image, in MB */ - GLuint MaxTextureLevels; /**< Max mipmap levels. */ + GLuint MaxTextureSize; /**< Max 1D/2D texture size, in pixels*/ GLuint Max3DTextureLevels; /**< Max mipmap levels for 3D textures */ GLuint MaxCubeTextureLevels; /**< Max mipmap levels for cube textures */ GLuint MaxArrayTextureLayers; /**< Max layers in array textures */ @@ -3764,6 +3847,11 @@ struct gl_constants */ GLboolean AllowHigherCompatVersion; + /** + * Allow layout qualifiers on function parameters. + */ + GLboolean AllowLayoutQualifiersOnFunctionParameters; + /** * Force computing the absolute value for sqrt() and inversesqrt() to follow * D3D9 when apps rely on this behaviour. @@ -3861,8 +3949,12 @@ struct gl_constants */ GLboolean GLSLSkipStrictMaxUniformLimitCheck; - /** Whether gl_FragCoord and gl_FrontFacing are system values. */ + /** + * Whether gl_FragCoord, gl_PointCoord and gl_FrontFacing + * are system values. + **/ bool GLSLFragCoordIsSysVal; + bool GLSLPointCoordIsSysVal; bool GLSLFrontFacingIsSysVal; /** @@ -3872,6 +3964,11 @@ struct gl_constants */ bool GLSLOptimizeConservatively; + /** + * Whether to call lower_const_arrays_to_uniforms() during linking. + */ + bool GLSLLowerConstArrays; + /** * True if gl_TessLevelInner/Outer[] in the TES should be inputs * (otherwise, they're system values). @@ -3898,6 +3995,15 @@ struct gl_constants */ GLboolean DisableVaryingPacking; + /** + * Disable varying packing if used for transform feedback. This is needed + * for some drivers (e.g. Panfrost) where transform feedback requires + * unpacked varyings. + * + * This variable is mutually exlusive with DisableVaryingPacking. + */ + GLboolean DisableTransformFeedbackPacking; + /** * UBOs and SSBOs can be packed tightly by the OpenGL implementation when * layout is set as shared (the default) or packed. However most Mesa drivers @@ -4075,8 +4181,31 @@ struct gl_constants /** Is the drivers uniform storage packed or padded to 16 bytes. */ bool PackedDriverUniformStorage; + /** Does the driver make use of the NIR based GLSL linker */ + bool UseNIRGLSLLinker; + + /** Wether or not glBitmap uses red textures rather than alpha */ + bool BitmapUsesRed; + + /** Whether the vertex buffer offset is a signed 32-bit integer. */ + bool VertexBufferOffsetIsInt32; + + /** Whether the driver can handle MultiDrawElements with non-VBO indices. */ + bool MultiDrawWithUserIndices; + + /** Whether out-of-order draw (Begin/End) optimizations are allowed. */ + bool AllowDrawOutOfOrder; + /** GL_ARB_gl_spirv */ struct spirv_supported_capabilities SpirVCapabilities; + + /** GL_ARB_spirv_extensions */ + struct spirv_supported_extensions *SpirVExtensions; + + char *VendorOverride; + + /** Buffer size used to upload vertices from glBegin/glEnd. */ + unsigned glBeginEndBufferSize; }; @@ -4169,6 +4298,7 @@ struct gl_extensions GLboolean ARB_shadow; GLboolean ARB_sparse_buffer; GLboolean ARB_stencil_texturing; + GLboolean ARB_spirv_extensions; GLboolean ARB_sync; GLboolean ARB_tessellation_shader; GLboolean ARB_texture_border_clamp; @@ -4210,9 +4340,12 @@ struct gl_extensions GLboolean EXT_blend_equation_separate; GLboolean EXT_blend_func_separate; GLboolean EXT_blend_minmax; + GLboolean EXT_demote_to_helper_invocation; GLboolean EXT_depth_bounds_test; GLboolean EXT_disjoint_timer_query; GLboolean EXT_draw_buffers2; + GLboolean EXT_EGL_image_storage; + GLboolean EXT_float_blend; GLboolean EXT_framebuffer_multisample; GLboolean EXT_framebuffer_multisample_blit_scaled; GLboolean EXT_framebuffer_sRGB; @@ -4220,6 +4353,7 @@ struct gl_extensions GLboolean EXT_gpu_shader4; GLboolean EXT_memory_object; GLboolean EXT_memory_object_fd; + GLboolean EXT_multisampled_render_to_texture; GLboolean EXT_packed_float; GLboolean EXT_pixel_buffer_object; GLboolean EXT_point_parameters; @@ -4227,19 +4361,27 @@ struct gl_extensions GLboolean EXT_render_snorm; GLboolean EXT_semaphore; GLboolean EXT_semaphore_fd; + GLboolean EXT_shader_image_load_formatted; + GLboolean EXT_shader_image_load_store; GLboolean EXT_shader_integer_mix; GLboolean EXT_shader_samples_identical; + GLboolean EXT_sRGB; GLboolean EXT_stencil_two_side; GLboolean EXT_texture_array; + GLboolean EXT_texture_buffer_object; GLboolean EXT_texture_compression_latc; GLboolean EXT_texture_compression_s3tc; + GLboolean EXT_texture_compression_s3tc_srgb; GLboolean EXT_texture_env_dot3; GLboolean EXT_texture_filter_anisotropic; GLboolean EXT_texture_integer; GLboolean EXT_texture_mirror_clamp; + GLboolean EXT_texture_norm16; + GLboolean EXT_texture_shadow_lod; GLboolean EXT_texture_shared_exponent; GLboolean EXT_texture_snorm; GLboolean EXT_texture_sRGB; + GLboolean EXT_texture_sRGB_R8; GLboolean EXT_texture_sRGB_decode; GLboolean EXT_texture_swizzle; GLboolean EXT_texture_type_2_10_10_10_REV; @@ -4256,7 +4398,9 @@ struct gl_extensions GLboolean OES_texture_view; GLboolean OES_viewport_array; /* vendor extensions */ + GLboolean AMD_compressed_ATC_texture; GLboolean AMD_framebuffer_multisample_advanced; + GLboolean AMD_depth_clamp_separate; GLboolean AMD_performance_monitor; GLboolean AMD_pinned_memory; GLboolean AMD_seamless_cubemap_per_texture; @@ -4270,9 +4414,11 @@ struct gl_extensions GLboolean ATI_texture_env_combine3; GLboolean ATI_fragment_shader; GLboolean GREMEDY_string_marker; + GLboolean INTEL_blackhole_render; GLboolean INTEL_conservative_rasterization; GLboolean INTEL_performance_query; GLboolean INTEL_shader_atomic_float_minmax; + GLboolean INTEL_shader_integer_functions2; GLboolean KHR_blend_equation_advanced; GLboolean KHR_blend_equation_advanced_coherent; GLboolean KHR_robustness; @@ -4286,7 +4432,9 @@ struct gl_extensions GLboolean EXT_shader_framebuffer_fetch_non_coherent; GLboolean MESA_shader_integer_functions; GLboolean MESA_ycbcr_texture; + GLboolean NV_compute_shader_derivatives; GLboolean NV_conditional_render; + GLboolean NV_copy_image; GLboolean NV_fill_rectangle; GLboolean NV_fog_distance; GLboolean NV_point_sprite; @@ -4300,6 +4448,8 @@ struct gl_extensions GLboolean NV_conservative_raster_dilate; GLboolean NV_conservative_raster_pre_snap_triangles; GLboolean NV_conservative_raster_pre_snap; + GLboolean NV_viewport_array2; + GLboolean NV_viewport_swizzle; GLboolean NVX_gpu_memory_info; GLboolean TDFX_texture_compression_FXT1; GLboolean OES_EGL_image; @@ -4388,7 +4538,7 @@ struct gl_matrix_stack #define _NEW_TRANSFORM (1u << 17) /**< gl_context::Transform */ #define _NEW_VIEWPORT (1u << 18) /**< gl_context::Viewport */ #define _NEW_TEXTURE_STATE (1u << 19) /**< gl_context::Texture (states only) */ -#define _NEW_ARRAY (1u << 20) /**< gl_context::Array */ +/* gap */ #define _NEW_RENDERMODE (1u << 21) /**< gl_context::RenderMode, etc */ #define _NEW_BUFFERS (1u << 22) /**< gl_context::Visual, DrawBuffer, */ #define _NEW_CURRENT_ATTRIB (1u << 23) /**< gl_context::Current */ @@ -4460,7 +4610,7 @@ struct gl_dlist_state GLvertexformat ListVtxfmt; GLubyte ActiveAttribSize[VERT_ATTRIB_MAX]; - GLfloat CurrentAttrib[VERT_ATTRIB_MAX][8]; + uint32_t CurrentAttrib[VERT_ATTRIB_MAX][8]; GLubyte ActiveMaterialSize[MAT_ATTRIB_MAX]; GLfloat CurrentMaterial[MAT_ATTRIB_MAX][4]; @@ -4780,7 +4930,7 @@ struct gl_context /*@}*/ - struct glthread_state *GLThread; + struct glthread_state GLThread; struct gl_config Visual; struct gl_framebuffer *DrawBuffer; /**< buffer for writing */ @@ -4909,6 +5059,11 @@ struct gl_context */ struct gl_pipeline_object *_Shader; + /** + * NIR containing the functions that implement software fp64 support. + */ + struct nir_shader *SoftFP64; + struct gl_query_state Query; /**< occlusion, timer queries */ struct gl_transform_feedback_state TransformFeedback; @@ -5005,6 +5160,7 @@ struct gl_context struct gl_driver_flags DriverFlags; GLboolean ViewportInitialized; /**< has viewport size been initialized? */ + GLboolean _AllowDrawOutOfOrder; GLbitfield varying_vp_inputs; /**< mask of VERT_BIT_* flags */ @@ -5039,6 +5195,8 @@ struct gl_context GLfloat ConservativeRasterDilate; GLenum16 ConservativeRasterMode; + GLboolean IntelBlackholeRender; /**< GL_INTEL_blackhole_render */ + /** Does glVertexAttrib(0) alias glVertex()? */ bool _AttribZeroAliasesVertex; @@ -5062,7 +5220,6 @@ struct gl_context void *swtnl_context; struct vbo_context *vbo_context; struct st_context *st; - void *aelt_context; /*@}*/ /** @@ -5097,6 +5254,8 @@ struct gl_context struct hash_table_u64 *ResidentTextureHandles; struct hash_table_u64 *ResidentImageHandles; /*@}*/ + + bool shader_builtin_ref; }; /** @@ -5112,7 +5271,7 @@ struct gl_memory_info unsigned nr_device_memory_evictions; /**< # of evictions (monotonic counter) */ }; -#ifdef DEBUG +#ifndef NDEBUG extern int MESA_VERBOSE; extern int MESA_DEBUG_FLAGS; #else