193a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell/*
274396056977776919aaa7c22be1a3d17774ae321Ian Romanick * (C) Copyright IBM Corporation 2002, 2004
393a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * All Rights Reserved.
493a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell *
593a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * Permission is hereby granted, free of charge, to any person obtaining a
693a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * copy of this software and associated documentation files (the "Software"),
793a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * to deal in the Software without restriction, including without limitation
893a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * on the rights to use, copy, modify, merge, publish, distribute, sub
993a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * license, and/or sell copies of the Software, and to permit persons to whom
1093a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * the Software is furnished to do so, subject to the following conditions:
1193a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell *
1293a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * The above copyright notice and this permission notice (including the next
1393a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * paragraph) shall be included in all copies or substantial portions of the
1493a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * Software.
1593a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell *
1693a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1793a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1893a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
1993a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
2093a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
2193a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
2293a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * USE OR OTHER DEALINGS IN THE SOFTWARE.
2393a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell *
2493a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell * Authors:
2593a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell *    Ian Romanick <idr@us.ibm.com>
2693a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell */
2793a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell
2893a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell#ifndef DRI_DEBUG_H
2993a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell#define DRI_DEBUG_H
3093a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell
3195eb6422c718d3d4ef34ec35bffa83307025793dGeorge Sapountzis#include <GL/gl.h>
3295eb6422c718d3d4ef34ec35bffa83307025793dGeorge Sapountzis#include <GL/internal/dri_interface.h>
33ecadb51bbcb972a79f3ed79e65a7986b9396e757Brian Paul#include "main/context.h"
34c95e66120be049ee51ff84868b1da3379b312fabGeorge Sapountzis
35c212abf99af494f024b0b981a83350f7ac9821efIan Romanickstruct dri_debug_control {
3693a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell    const char * string;
3793a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell    unsigned     flag;
3893a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell};
3993a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell
4093a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwellextern unsigned driParseDebugString( const char * debug,
4193a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell    const struct dri_debug_control * control );
4293a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell
4393a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwellextern unsigned driGetRendererString( char * buffer,
440fe34b7bbc9a8e089bbb4d0fe401b09095a571ebIan Romanick    const char * hardware_name, GLuint agp_mode );
4593a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell
46c95e66120be049ee51ff84868b1da3379b312fabGeorge Sapountzisstruct __DRIconfigRec {
47d3491e775fb07f891463b2185d74bbad62f3ed24Kristian Høgsberg    struct gl_config modes;
48c95e66120be049ee51ff84868b1da3379b312fabGeorge Sapountzis};
49c95e66120be049ee51ff84868b1da3379b312fabGeorge Sapountzis
50e82dd8c6e1fa2fff5b960de26961080ba5e9651dKristian Høgsbergextern __DRIconfig **
51e82dd8c6e1fa2fff5b960de26961080ba5e9651dKristian HøgsbergdriCreateConfigs(GLenum fb_format, GLenum fb_type,
525a46e176715b0eae7b8a715e8aec42f5a27214fcKeith Whitwell		 const uint8_t * depth_bits, const uint8_t * stencil_bits,
53e82dd8c6e1fa2fff5b960de26961080ba5e9651dKristian Høgsberg		 unsigned num_depth_stencil_bits,
54f7d80aa00611917bc8ce637136d982b151b8f44fAlan Hourihane		 const GLenum * db_modes, unsigned num_db_modes,
553cce4a1e10361458630511543b7a8a6438544775Ian Romanick		 const uint8_t * msaa_samples, unsigned num_msaa_modes,
563cce4a1e10361458630511543b7a8a6438544775Ian Romanick		 GLboolean enable_accum);
57e82dd8c6e1fa2fff5b960de26961080ba5e9651dKristian Høgsberg
585d5ae371eaeca7e33e638af3aee1ae8e162db0a7Eric Anholt__DRIconfig **driConcatConfigs(__DRIconfig **a,
595d5ae371eaeca7e33e638af3aee1ae8e162db0a7Eric Anholt			       __DRIconfig **b);
6074396056977776919aaa7c22be1a3d17774ae321Ian Romanick
61c95e66120be049ee51ff84868b1da3379b312fabGeorge Sapountzisint
62c95e66120be049ee51ff84868b1da3379b312fabGeorge SapountzisdriGetConfigAttrib(const __DRIconfig *config,
63c95e66120be049ee51ff84868b1da3379b312fabGeorge Sapountzis		   unsigned int attrib, unsigned int *value);
64c95e66120be049ee51ff84868b1da3379b312fabGeorge Sapountzisint
65c95e66120be049ee51ff84868b1da3379b312fabGeorge SapountzisdriIndexConfigAttrib(const __DRIconfig *config, int index,
66c95e66120be049ee51ff84868b1da3379b312fabGeorge Sapountzis		     unsigned int *attrib, unsigned int *value);
67c95e66120be049ee51ff84868b1da3379b312fabGeorge Sapountzis
6893a458840c77b784fb74738f734ba2c5d22ca7a7Keith Whitwell#endif /* DRI_DEBUG_H */
69