~ubuntu-branches/ubuntu/natty/mesa/natty-proposed

« back to all changes in this revision

Viewing changes to include/GL/internal/dri_interface.h

  • Committer: Bazaar Package Importer
  • Author(s): Robert Hooker, Robert Hooker, Christopher James Halse Rogers
  • Date: 2010-09-14 08:55:40 UTC
  • mfrom: (1.2.28 upstream)
  • Revision ID: james.westby@ubuntu.com-20100914085540-m4fpl0hdjlfd4jgz
Tags: 7.9~git20100909-0ubuntu1
[ Robert Hooker ]
* New upstream git snapshot up to commit 94118fe2d4b1e5 (LP: #631413)
* New features include ATI HD5xxx series support in r600, and a vastly
  improved glsl compiler.
* Remove pre-generated .pc's, use the ones generated at build time
  instead.
* Remove all references to mesa-utils now that its no longer shipped
  with the mesa source.
* Disable the experimental ARB_fragment_shader option by default on
  i915, it exposes incomplete functionality that breaks KDE compositing
  among other things. It can be enabled via driconf still. (LP: #628930).

[ Christopher James Halse Rogers ]
* debian/patches/04_osmesa_version.diff:
  - Refresh for new upstream
* Bugs fixed in this release:
  - Fixes severe rendering corruption in Unity on radeon (LP: #628727,
    LP: #596292, LP: #599741, LP: #630315, LP: #613694, LP: #599741).
  - Also fixes rendering in gnome-shell (LP: #578619).
  - Flickering in OpenGL apps on radeon (LP: #626943, LP: #610541).
  - Provides preliminary support for new intel chips (LP: #601052).
* debian/rules:
  - Update configure flags to match upstream reshuffling.
  - Explicitly remove gallium DRI drivers that we don't want to ship.
* Update debian/gbp.conf for this Maverick-specific packaging
* libegl1-mesa-dri-x11,kms: There are no longer separate kms or x11 drivers
  for EGL, libegl1-mesa-drivers now contains a single driver that provides
  both backends.

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
#define DRI_INTERFACE_H
42
42
 
43
43
/* For archs with no drm.h */
44
 
#if !defined(__APPLE__) && !defined(__CYGWIN__) && !defined(__GNU__)
 
44
#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__)
 
45
#ifndef __NOT_HAVE_DRM_H
 
46
#define __NOT_HAVE_DRM_H
 
47
#endif
 
48
#endif
 
49
 
 
50
#ifndef __NOT_HAVE_DRM_H
45
51
#include <drm.h>
46
52
#else
47
53
typedef unsigned int drm_context_t;
68
74
typedef struct __DRIextensionRec                __DRIextension;
69
75
typedef struct __DRIcopySubBufferExtensionRec   __DRIcopySubBufferExtension;
70
76
typedef struct __DRIswapControlExtensionRec     __DRIswapControlExtension;
71
 
typedef struct __DRIallocateExtensionRec        __DRIallocateExtension;
72
77
typedef struct __DRIframeTrackingExtensionRec   __DRIframeTrackingExtension;
73
78
typedef struct __DRImediaStreamCounterExtensionRec      __DRImediaStreamCounterExtension;
74
79
typedef struct __DRItexOffsetExtensionRec       __DRItexOffsetExtension;
144
149
};
145
150
 
146
151
/**
147
 
 * Used by drivers that implement the GLX_MESA_allocate_memory.
148
 
 */
149
 
#define __DRI_ALLOCATE "DRI_Allocate"
150
 
#define __DRI_ALLOCATE_VERSION 1
151
 
struct __DRIallocateExtensionRec {
152
 
    __DRIextension base;
153
 
 
154
 
    void *(*allocateMemory)(__DRIscreen *screen, GLsizei size,
155
 
                            GLfloat readfreq, GLfloat writefreq,
156
 
                            GLfloat priority);
157
 
   
158
 
    void (*freeMemory)(__DRIscreen *screen, GLvoid *pointer);
159
 
   
160
 
    GLuint (*memoryOffset)(__DRIscreen *screen, const GLvoid *pointer);
161
 
};
162
 
 
163
 
/**
164
152
 * Used by drivers that implement the GLX_MESA_swap_frame_usage extension.
165
153
 */
166
154
#define __DRI_FRAME_TRACKING "DRI_FrameTracking"
410
398
     * Put image to drawable
411
399
     */
412
400
    void (*putImage)(__DRIdrawable *drawable, int op,
413
 
                     int x, int y, int width, int height, char *data,
414
 
                     void *loaderPrivate);
 
401
                     int x, int y, int width, int height,
 
402
                     char *data, void *loaderPrivate);
415
403
 
416
404
    /**
417
 
     * Get image from drawable
 
405
     * Get image from readable
418
406
     */
419
 
    void (*getImage)(__DRIdrawable *drawable,
420
 
                     int x, int y, int width, int height, char *data,
421
 
                     void *loaderPrivate);
 
407
    void (*getImage)(__DRIdrawable *readable,
 
408
                     int x, int y, int width, int height,
 
409
                     char *data, void *loaderPrivate);
 
410
};
 
411
 
 
412
/**
 
413
 * Invalidate loader extension.  The presence of this extension
 
414
 * indicates to the DRI driver that the loader will call invalidate in
 
415
 * the __DRI2_FLUSH extension, whenever the needs to query for new
 
416
 * buffers.  This means that the DRI driver can drop the polling in
 
417
 * glViewport().
 
418
 *
 
419
 * The extension doesn't provide any functionality, it's only use to
 
420
 * indicate to the driver that it can use the new semantics.  A DRI
 
421
 * driver can use this to switch between the different semantics or
 
422
 * just refuse to initialize if this extension isn't present.
 
423
 */
 
424
#define __DRI_USE_INVALIDATE "DRI_UseInvalidate"
 
425
#define __DRI_USE_INVALIDATE_VERSION 1
 
426
 
 
427
typedef struct __DRIuseInvalidateExtensionRec __DRIuseInvalidateExtension;
 
428
struct __DRIuseInvalidateExtensionRec {
 
429
   __DRIextension base;
422
430
};
423
431
 
424
432
/**
730
738
 * constructors for DRI2.
731
739
 */
732
740
#define __DRI_DRI2 "DRI_DRI2"
733
 
#define __DRI_DRI2_VERSION 1
 
741
#define __DRI_DRI2_VERSION 2
 
742
 
 
743
#define __DRI_API_OPENGL        0
 
744
#define __DRI_API_GLES          1
 
745
#define __DRI_API_GLES2         2
734
746
 
735
747
struct __DRIdri2ExtensionRec {
736
748
    __DRIextension base;
749
761
                                      __DRIcontext *shared,
750
762
                                      void *loaderPrivate);
751
763
 
 
764
   /* Since version 2 */
 
765
   unsigned int (*getAPIMask)(__DRIscreen *screen);
 
766
 
 
767
   __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen,
 
768
                                           int api,
 
769
                                           const __DRIconfig *config,
 
770
                                           __DRIcontext *shared,
 
771
                                           void *data);
752
772
};
753
773
 
754
774
 
769
789
#define __DRI_IMAGE_FORMAT_XRGB8888     0x1002
770
790
#define __DRI_IMAGE_FORMAT_ARGB8888     0x1003
771
791
 
 
792
#define __DRI_IMAGE_USE_SHARE           0x0001
 
793
#define __DRI_IMAGE_USE_SCANOUT         0x0002
 
794
 
 
795
/**
 
796
 * queryImage attributes
 
797
 */
 
798
 
 
799
#define __DRI_IMAGE_ATTRIB_STRIDE       0x2000
 
800
#define __DRI_IMAGE_ATTRIB_HANDLE       0x2001
 
801
#define __DRI_IMAGE_ATTRIB_NAME         0x2002
 
802
 
772
803
typedef struct __DRIimageRec          __DRIimage;
773
804
typedef struct __DRIimageExtensionRec __DRIimageExtension;
774
805
struct __DRIimageExtensionRec {
784
815
                                               void *loaderPrivate);
785
816
 
786
817
    void (*destroyImage)(__DRIimage *image);
 
818
 
 
819
    __DRIimage *(*createImage)(__DRIscreen *screen,
 
820
                               int width, int height, int format,
 
821
                               unsigned int use,
 
822
                               void *loaderPrivate);
 
823
 
 
824
   GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value);
787
825
};
788
826
 
 
827
 
789
828
/**
790
829
 * This extension must be implemented by the loader and passed to the
791
830
 * driver at screen creation time.  The EGLImage entry points in the
806
845
                                  void *loaderPrivate);
807
846
};
808
847
 
 
848
/**
 
849
 * This extension allows for common DRI2 options
 
850
 */
 
851
#define __DRI2_CONFIG_QUERY "DRI_CONFIG_QUERY"
 
852
#define __DRI2_CONFIG_QUERY_VERSION 1
 
853
 
 
854
typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension;
 
855
struct __DRI2configQueryExtensionRec {
 
856
   __DRIextension base;
 
857
 
 
858
   int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val);
 
859
   int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val);
 
860
   int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val);
 
861
};
809
862
#endif