From 85ef9930f56bf15181f9a0b238f03d55303cf411 Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 22 Nov 2010 19:42:40 +0000 Subject: Updated to mesalib 7.9 --- mesalib/docs/MESA_drm_image.spec | 149 ++++++++++++++++++++++++++++++ mesalib/docs/contents.html | 1 - mesalib/docs/developers.html | 26 +++--- mesalib/docs/devinfo.html | 9 +- mesalib/docs/egl.html | 124 +++++++++++-------------- mesalib/docs/fbdev-dri.html | 10 ++- mesalib/docs/install.html | 2 +- mesalib/docs/intro.html | 8 +- mesalib/docs/news.html | 19 ++-- mesalib/docs/opengles.html | 69 +++++++------- mesalib/docs/relnotes-7.8.2.html | 87 ------------------ mesalib/docs/relnotes-7.9.html | 137 ++++++++++++++++++++++++++++ mesalib/docs/relnotes.html | 1 + mesalib/docs/repository.html | 12 ++- mesalib/docs/shading.html | 190 +++++++++------------------------------ mesalib/docs/subset-A.html | 3 +- 16 files changed, 468 insertions(+), 379 deletions(-) create mode 100644 mesalib/docs/MESA_drm_image.spec create mode 100644 mesalib/docs/relnotes-7.9.html (limited to 'mesalib/docs') diff --git a/mesalib/docs/MESA_drm_image.spec b/mesalib/docs/MESA_drm_image.spec new file mode 100644 index 000000000..118501c3d --- /dev/null +++ b/mesalib/docs/MESA_drm_image.spec @@ -0,0 +1,149 @@ +Name + + MESA_drm_image + +Name Strings + + EGL_MESA_drm_image + +Contact + + Kristian Høgsberg + +Status + + Proposal + +Version + + Version 2, August 25, 2010 + +Number + + EGL Extension #not assigned + +Dependencies + + Reguires EGL 1.4 or later. This extension is written against the + wording of the EGL 1.4 specification. + + EGL_KHR_base_image is required. + +Overview + + This extension provides entry points for integrating EGLImage with the + Linux DRM mode setting and memory management drivers. The extension + lets applications create EGLImages without a client API resource and + lets the application get the DRM buffer handles. + +IP Status + + Open-source; freely implementable. + +New Procedures and Functions + + EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy, + const EGLint *attrib_list); + + EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy, + EGLImageKHR image, + EGLint *name, + EGLint *handle, + EGLint *stride); + +New Tokens + + Accepted in the parameter of eglCreateDRMImageMESA: + + EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 + EGL_DRM_BUFFER_USE_MESA 0x31D1 + + Accepted as values for the EGL_IMAGE_FORMAT_MESA attribute: + + EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 + + Bits accepted in EGL_DRM_BUFFER_USE_MESA: + + EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x0001 + EGL_DRM_BUFFER_USE_SHARE_MESA 0x0002 + + Accepted in the parameter of eglCreateImageKHR: + + EGL_DRM_BUFFER_MESA 0x31D3 + + Use when importing drm buffer: + + EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 + EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 + +Additions to the EGL 1.4 Specification: + + To create a DRM EGLImage, call + + EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy, + const EGLint *attrib_list); + + In the attribute list, pass EGL_WIDTH, EGL_EIGHT and format and + use in the attrib list using EGL_DRM_BUFFER_FORMAT_MESA and + EGL_DRM_BUFFER_USE_MESA. The only format specified by this + extension is EGL_DRM_BUFFER_FORMAT_ARGB32_MESA, where each pixel + is a CPU-endian, 32-bit quantity, with alpha in the upper 8 bits, + then red, then green, then blue. The bit values accepted by + EGL_DRM_BUFFER_USE_MESA are EGL_DRM_BUFFER_USE_SCANOUT_MESA and + EGL_DRM_BUFFER_USE_SHARE_MESA. EGL_DRM_BUFFER_USE_SCANOUT_MESA + requests that the created EGLImage should be usable as a scanout + buffer with the DRM kernel modesetting API. The + EGL_DRM_BUFFER_USE_SHARE_MESA bit requests that the EGLImage can + be shared with other processes by passing the underlying DRM + buffer name. + + To create a process local handle or a global DRM name for a + buffer, call + + EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy, + EGLImageKHR image, + EGLint *name, + EGLint *handle, + EGLint *stride); + + If is non-NULL, a global name is assigned to the image and + written to , the handle (local to the DRM file descriptor, + for use with DRM kernel modesetting API) is written to if + non-NULL and the stride (in bytes) is written to , if + non-NULL. + + Import a shared buffer by calling eglCreateImageKHR with + EGL_DRM_BUFFER_MESA as the target, using EGL_WIDTH, EGL_HEIGHT, + EGL_DRM_BUFFER_FORMAT_MESA, EGL_DRM_BUFFER_STRIDE_MESA + in the attrib list. + +Issues + + 1. Why don't we use eglCreateImageKHR with a target that + indicates that we want to create an EGLImage from scratch? + + RESOLVED: The eglCreateImageKHR entry point is reserved for + creating an EGLImage from an already existing client API + resource. This is fine when we're creating the EGLImage from + an existing DRM buffer name, it doesn't seem right to overload + the function to also allocate the underlying resource. + + 2. Why don't we use an eglQueryImageMESA type functions for + querying the DRM EGLImage attributes (name, handle, and stride)? + + RESOLVED: The eglQueryImage function has been proposed often, + but it goes against the EGLImage design. EGLImages are opaque + handles to a 2D array of pixels, which can be passed between + client APIs. By referenceing an EGLImage in a client API, the + EGLImage target (a texture, a renderbuffer or such) can be + used to query the attributes of the EGLImage. We don't have a + full client API for creating and querying DRM buffers, though, + so we use a new EGL extension entry point instead. + +Revision History + + Version 1, June 3, 2010 + Initial draft (Kristian Høgsberg) + Version 2, August 25, 2010 + Flesh out the extension a bit, add final EGL tokens, capture + some of the original discussion in the issues section. diff --git a/mesalib/docs/contents.html b/mesalib/docs/contents.html index cca20ecaa..cf1661e4e 100644 --- a/mesalib/docs/contents.html +++ b/mesalib/docs/contents.html @@ -69,7 +69,6 @@ a:visited {
  • SourceForge homepage
  • Source Code Repository
  • Source Code Tree -
  • DRI Memory Management
  • SGI's GLU
  • Utilities
  • Help Wanted diff --git a/mesalib/docs/developers.html b/mesalib/docs/developers.html index 410f1ac5e..8960e7cb4 100644 --- a/mesalib/docs/developers.html +++ b/mesalib/docs/developers.html @@ -12,12 +12,14 @@ Both professional and volunteer developers contribute to Mesa.

    -Tungsten Graphics +VMware employs several of the main Mesa developers including Brian Paul and Keith Whitwell. -Much of the on-going work in Mesa is done through Tungsten Graphics engineering -contracts. -Prominent examples of this work includes: +

    + +

    +In the past, Tungsten Graphics contracts implemented many Mesa features +including:

    • DRI drivers for Intel i965, i945, i915 and other chips @@ -29,23 +31,19 @@ Prominent examples of this work includes:

      Other companies including Intel -and IBM also actively contribute to the project. +and RedHat also actively contribute to the project. +Intel has recently contributed the new GLSL compiler in Mesa 7.9.

      -Volunteers have made significant contributions to all parts of Mesa, including -complete device drivers. +LunarG can be contacted +for custom Mesa / 3D graphics development.

      - -

      Custom Development

      -Contact -Tungsten Graphics -for information about custom development in Mesa, OpenGL, X and other -graphics technologies. +Volunteers have made significant contributions to all parts of Mesa, including +complete device drivers.

      - diff --git a/mesalib/docs/devinfo.html b/mesalib/docs/devinfo.html index 2d1c125e8..df0e72652 100644 --- a/mesalib/docs/devinfo.html +++ b/mesalib/docs/devinfo.html @@ -145,7 +145,7 @@ Make sure the values in src/mesa/main/version.h are correct.

      -Update docs/news.html. +Update the docs/news.html file and docs/download.html files.

      @@ -208,11 +208,10 @@ sftp USERNAME,mesa3d@web.sourceforge.net

      Make an announcement on the mailing lists: - -mesa-dev@lists.freedesktop.org, -mesa-users@lists.freedesktop.org +mesa3d-dev@lists.sf.net, +mesa3d-users@lists.sf.net and -mesa-announce@lists.freedesktop.org +mesa3d-announce@lists.sf.net

      diff --git a/mesalib/docs/egl.html b/mesalib/docs/egl.html index 55907f6cf..d38f2dd7b 100644 --- a/mesalib/docs/egl.html +++ b/mesalib/docs/egl.html @@ -32,13 +32,13 @@ cards.

      the Gallium driver for your hardware. For example

      -  $ ./configure --with-state-trackers=egl,es,vega --enable-gallium-{swrast,intel}
      +  $ ./configure --enable-gles-overlay --with-state-trackers=egl,vega --enable-gallium-intel
       
      -

      The main library will be enabled by default. The egl state +

      The main library and OpenGL is enabled by default. The first option enables +OpenGL ES 1.x and 2.x. The egl state tracker is needed by a number of EGL drivers. EGL drivers will be covered -later. The es state tracker provides OpenGL ES 1.x -and 2.x and the vega state tracker provides OpenVG +later. The vega state tracker provides OpenVG 1.x.

    • @@ -46,8 +46,8 @@ and 2.x and the vega state tracker provides OpenVG

      In the given example, it will build and install libEGL, -libGLESv1_CM, libGLESv2, libOpenVG, and -one or more EGL drivers.

      +libGL, libGLESv1_CM, libGLESv2, +libOpenVG, and one or more EGL drivers.

      Configure Options

      @@ -69,56 +69,53 @@ drivers will be installed to ${libdir}/egl.

      -
    • --with-egl-displays +
    • --with-egl-platforms -

      List the window system(s) to support. It is by default x11, -which supports the X Window System. Its argument is a comma separated string -like, for example, --with-egl-displays=x11,kms. Because an EGL -driver decides which window system to support, this example will enable two -(sets of) EGL drivers. One supports the X window system and the other supports -bare KMS (kernel modesetting).

      +

      List the platforms (window systems) to support. Its argument is a comma +seprated string such as --with-egl-platforms=x11,drm. It decides +the platforms a driver may support. The first listed platform is also used by +the main library to decide the native platform: the platform the EGL native +types such as EGLNativeDisplayType or +EGLNativeWindowType defined for.

      + +

      The available platforms are x11, drm, +fbdev, and gdi. The gdi platform can +only be built with SCons.

    • --with-state-trackers

      The argument is a comma separated string. It is usually used to specify the -rendering APIs, like OpenGL ES or OpenVG, to build. But it should be noted -that a number of EGL drivers depend on the egl state tracker. -They will not be built without the egl state tracker.

      +rendering APIs, such as OpenVG, to build. But it is also used to specify +egl state tracker that egl_gallium depends on.

    • -
    • --enable-gallium-swrast +
    • --enable-gles-overlay -

      This option is not specific to EGL. But if there is no driver for your -hardware, or you are experiencing problems with the hardware driver, you can -enable the swrast DRM driver. It is a dummy driver and EGL will fallback to -software rendering automatically.

      +

      OpenGL and OpenGL ES are not controlled by +--with-state-trackers. OpenGL is always built. To build OpenGL +ES, this option must be explicitly given.

    • -
    -

    OpenGL

    +
  • --enable-gles1 and --enable-gles2 + +

    Unlike --enable-gles-overlay, which builds one library for each +rendering API, these options enable OpenGL ES support in OpenGL. The result is +one big library that supports multiple APIs.

    + +
  • -

    The OpenGL state tracker is not built in the above example. It should be -noted that the classic libGL is not a state tracker and cannot be -used with EGL (unless the EGL driver in use is egl_glx). To build -the OpenGL state tracker, one may append glx to ---with-state-trackers and manually build -src/gallium/winsys/xlib/.

    +

    Use EGL

    -

    The demos for OpenGL ES and OpenVG can be found in progs/es1/, -progs/es2/ and progs/openvg/. You can use them to -test your build. For example,

    +

    Demos

    -
    -  $ cd progs/es1/xegl
    -  $ make
    -  $ ./torus
    -
    +

    There are demos for the client APIs supported by EGL. They can be found in +mesa/demos repository.

    Environment Variables

    @@ -142,16 +139,18 @@ binaries.

    specified EGL driver to be loaded. It comes in handy when one wants to test a specific driver. This variable is ignored for setuid/setgid binaries.

    +

    egl_gallium dynamically loads hardware drivers and client API +modules found in EGL_DRIVERS_PATH. Thus, specifying this variable +alone is not sufficient for egl_gallium for uninstalled build.

    + -
  • EGL_DISPLAY +
  • EGL_PLATFORM -

    When EGL_DRIVER is not set, the main library loads all -EGL drivers that support a certain window system. EGL_DISPLAY can -be used to specify the window system and the valid values are, for example, -x11 or kms. When the variable is not set, the main -library defaults the value to the first window system listed in ---with-egl-displays at configuration time. +

    This variable specifies the native platform. The valid values are the same +as those for --with-egl-platforms. When the variable is not set, +the main library uses the first platform listed in +--with-egl-platforms as the native platform

  • @@ -173,31 +172,15 @@ variable to true forces the use of software rendering.

    EGL Drivers

    -

    There are two categories of EGL drivers: Gallium and classic.

    - -

    Gallium EGL drivers supports all rendering APIs specified in EGL 1.4. The -support for optional EGL functions and EGL extensions is usually more complete -than the classic ones. These drivers depend on the egl state -tracker to build. The available drivers are

    -
      -
    • egl_<dpy>_i915
    • -
    • egl_<dpy>_i965
    • -
    • egl_<dpy>_radeon
    • -
    • egl_<dpy>_nouveau
    • -
    • egl_<dpy>_swrast
    • -
    • egl_<dpy>_vmwgfx
    • -
    +
  • egl_gallium -

    <dpy> is given by --with-egl-displays at -configuration time. There will be one EGL driver for each combination of the -displays listed and the hardware drivers enabled.

    +

    This driver is based on Gallium3D. It supports all rendering APIs and +hardwares supported by Gallium3D. It is the only driver that supports OpenVG. +The supported platforms are X11, KMS, FBDEV, and GDI.

    -

    Classic EGL drivers, on the other hand, supports only OpenGL as its -rendering API. They can be found under src/egl/drivers/. There -are 3 of them

    +
  • -
    • egl_glx

      This driver provides a wrapper to GLX. It uses exclusively GLX to implement @@ -224,9 +207,6 @@ are phasing out, it might eventually be replaced by egl_dri2.

    -

    To use the classic drivers, one must manually set EGL_DRIVER at -runtime.

    -

    Developers

    The sources of the main library and the classic drivers can be found at @@ -315,8 +295,12 @@ should as well lock the display before using it.

    • Pass the conformance tests
    • -
    • Better automatic driver selection: EGL_DISPLAY loads all -drivers and might eat too much memory.
    • +
    • Reference counting in main library?
    • +
    • Mixed use of OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is supported. But +which one of libGL.so, libGLESv1_CM.so, and +libGLESv2.so should an application link to? Bad things may happen +when, say, an application is linked to libGLESv2.so and +libcairo, which is linked to libGL.so instead.
    diff --git a/mesalib/docs/fbdev-dri.html b/mesalib/docs/fbdev-dri.html index e941b1679..0eea5e8e3 100644 --- a/mesalib/docs/fbdev-dri.html +++ b/mesalib/docs/fbdev-dri.html @@ -9,6 +9,9 @@

    Mesa fbdev/DRI Drivers


    +

    NOTE: this information is obsolete and will be removed at +a future date

    +

    1. Introduction

    @@ -22,7 +25,7 @@ Contributors to this project include Jon Smirl, Keith Whitwell and Dave Airlie.

    Applications in the fbdev/DRI environment use -the MiniGLX interface to choose pixel +the MiniGLX interface to choose pixel formats, create rendering contexts, etc. It's a subset of the GLX and Xlib interfaces allowing some degree of application portability between the X and X-less environments. @@ -315,8 +318,7 @@ It means that the sample_server process is not running.

    5.0 Programming Information

    -OpenGL/Mesa is interfaced to fbdev via the MiniGLX -interface. +OpenGL/Mesa is interfaced to fbdev via the MiniGLX interface. MiniGLX is a subset of Xlib and GLX API functions which provides just enough functionality to setup OpenGL rendering and respond to simple input events. @@ -332,7 +334,7 @@ This allows some degree of flexibility for software development and testing. However, the MiniGLX API is not binary-compatible with full Xlib/GLX. Some of the structures are different and some macros/functions work differently. -See the GL/miniglx.h header file for details. +See the GL/miniglx.h header file for details.

    diff --git a/mesalib/docs/install.html b/mesalib/docs/install.html index 5aea92e0b..3962ea5c9 100644 --- a/mesalib/docs/install.html +++ b/mesalib/docs/install.html @@ -361,7 +361,7 @@ To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler tool This will create:

      -
    • build/windows-x86-debug/gallium/winsys/gdi/opengl32.dll — Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll +
    • build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll
    • build/windows-x86-debug/glut/glx/glut32.dll
    • progs/build/windows-x86-debug/wgl/wglinfo.exe
    • progs/build/windows-x86-debug/trivial/tri.exe diff --git a/mesalib/docs/intro.html b/mesalib/docs/intro.html index aae2e6e19..0806caf38 100644 --- a/mesalib/docs/intro.html +++ b/mesalib/docs/intro.html @@ -111,11 +111,9 @@ It implements the OpenGL 1.3 specification.

      -November 2001: I cofound -Tungsten Graphics, Inc. with Keith Whitwell, Jens Owen, David Dawes and -Frank LaMonica. -I continue to develop Mesa as part of my resposibilities with Tungsten -Graphics and as a spare-time project. +November 2001: I cofounded Tungsten Graphics, Inc. with Keith Whitwell, +Jens Owen, David Dawes and Frank LaMonica. +Tungsten Graphics was acquired by VMware in December 2008.

      diff --git a/mesalib/docs/news.html b/mesalib/docs/news.html index 92e2a1826..b3fb8b556 100644 --- a/mesalib/docs/news.html +++ b/mesalib/docs/news.html @@ -11,6 +11,14 @@

      News

      +

      September 27, 2010

      + +

      +Mesa 7.9.0-rc1 is released. This is a +release candidate for the 7.9 development release. +

      + +

      June 16, 2010

      @@ -165,9 +173,6 @@ Added a new page describing the Mesa Cell driver.

      Gallium3D is the codename for the new Mesa device driver architecture which is currently under development. -A summary of the architecture can be found on the -Tungsten Graphics website.

      Gallium3D development is taking place on the gallium-0.1 branch @@ -218,11 +223,8 @@ shading language and built-in functions.

      April 2007

      -Thomas Hellström of - -Tungsten Graphics has written a whitepaper describing the new -DRI memory management -system. +Thomas Hellström of Tungsten Graphics has written a whitepaper +describing the new DRI memory management system.

      December 5, 2006

      @@ -1283,7 +1285,6 @@ grateful.

      March 18, 1999

      The new webpages are now online. Enjoy, and let me know if you find any errors. -For an eye-candy free version you can use http://www.mesa3d.org/txt/.

      February 16, 1999

      SGI releases its GLX diff --git a/mesalib/docs/opengles.html b/mesalib/docs/opengles.html index fc41e6771..63cc1146a 100644 --- a/mesalib/docs/opengles.html +++ b/mesalib/docs/opengles.html @@ -1,68 +1,69 @@ -OpenGL ES State Trackers +OpenGL ES -

      OpenGL ES State Trackers

      +

      OpenGL ES

      -

      The current version of the OpenGL ES state trackers implement OpenGL ES 1.1 and OpenGL ES 2.0. -More informations about OpenGL ES can be found at - -http://www.khronos.org/opengles/.

      - -

      The OpenGL ES state trackers depends on the Gallium architecture and a -working EGL implementation. Please refer to Mesa EGL -for more information about EGL.

      +

      Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0. More informations about +OpenGL ES can be found at http://www.khronos.org/opengles/.

      +

      OpenGL ES depends on a working EGL implementation. Please refer to +Mesa EGL for more information about EGL.

      Build the Libraries

        -
      1. Run configure with --with-state-trackers=egl,es and enable the Gallium driver for your hardware.
      2. +
      3. Run configure with --enable-gles-overlay and enable the Gallium driver for your hardware.
      4. +
      5. Build and install Mesa as usual.
      6. +
      + +Alternatively, if XCB-DRI2 is installed on the system, one can use +egl_dri2 EGL driver with OpenGL|ES-enabled DRI drivers + +
        +
      1. Run configure with --enable-gles1 --enable-gles2.
      2. Build and install Mesa as usual.
      -

      It will install libGLESv1_CM, libGLESv2, libEGL, and one or more EGL drivers for your hardware.

      +

      Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more +EGL drivers for your hardware.

      +

      Run the Demos

      -

      There are some demos in progs/es1/ and progs/es2/. You can use them to test your build. For example,

      +

      There are some demos in progs/egl/. You can use them to test +your build. For example,

      -  $ cd progs/es1/xegl
      +  $ cd progs/egl/eglut
      +  $ make
      +  $ cd ../opengles1
         $ make
      -  $ ./torus
      +  $ ./torus_x11
       

      Developers

      -

      The core of OpenGL ES state trackers is the ES overlay. It is located in -src/mesa/es/.

      - -

      Structure

      +

      Internal Libraries

      -

      The ES overlay uses as much code as possible from Mesa. It has its own glapi XMLs to describe the APIs of OpenGL ES. The ES overlay can be built parallelly with Mesa, and they will give

      - - - - - - - - - +
      Library NameUsageSource
      libmesagallium.aOpenGL state trackerMesa
      libes1gallium.aOpenGL ES 1.x state trackerES overlay
      libes2gallium.aOpenGL ES 2.x state trackerES overlay
      libglapi.aOpenGL APIMesa
      libes1api.aOpenGL ES 1.x APIES overlay
      libes2api.aOpenGL ES 2.x APIES overlay
      + + + + +
      Library NameUsed ByEnabledOpenGLOpenGL ES 1.xOpenGL ES 2.x
      libmesa.aClassic DRI driversyy--enable-gles1--enable-gles2
      libmesagallium.aGallium EGL and DRI driversyy--enable-gles1--enable-gles2
      libes1gallium.aGallium EGL drivers--enable-gles-overlaynyn
      libes2gallium.aGallium EGL drivers--enable-gles-overlaynny
      -

      The OpenGL ES state trackers and APIs are then used by src/gallium/state_trackers/es/ to create the final libraries.

      -

      Dispatch Table

      -

      The ES overlay uses an additional indirection when dispatching fucntions

      +

      OpenGL ES has an additional indirection when dispatching fucntions

         Mesa:       glFoo() --> _mesa_Foo()
      -  ES overlay: glFoo() --> _es_Foo() --> _mesa_Foo()
      +  OpenGL ES:  glFoo() --> _es_Foo() --> _mesa_Foo()
       

      The indirection serves several purposes

      @@ -73,7 +74,7 @@ for more information about EGL.

    • When a function is not available in Mesa, or accepts arguments that are not available in OpenGL, it provides its own implementation.
    -

    Other than the last case, the ES overlay uses APIspec.xml to generate functions to check and/or converts the arguments.

    +

    Other than the last case, OpenGL ES uses APIspec.xml to generate functions to check and/or converts the arguments.

    diff --git a/mesalib/docs/relnotes-7.8.2.html b/mesalib/docs/relnotes-7.8.2.html index 651e68eac..e1b0f2d27 100644 --- a/mesalib/docs/relnotes-7.8.2.html +++ b/mesalib/docs/relnotes-7.8.2.html @@ -44,93 +44,6 @@ tbd
    • Fixed Gallium glDrawPixels(GL_DEPTH_COMPONENT).
    • Fixed Gallium Cell driver to buildable, runable state -
    • Fixed bad error checking for glFramebufferRenderbuffer(attachment=GL_DEPTH_STENCIL_ATTACHMENT). -
    • Fixed incorrect Z coordinate handling in "meta" glDraw/CopyPixels. - Bug - #23670.
    • - -
    • Assorted i965 driver fixes. - Including but not limited to: -
        -
      • Fix scissoring when width or height is - 0. Bug - #27643. -
      • Fix bit allocation for number of color regions for - ARB_draw_buffers.
      • -
      • Set the correct provoking vertex for clipped first-mode - trifans. Bug - #24470.
      • -
      • Use R16G16B16A16_FLOAT for 3-component half-float.
      • -
      • Fix assertion for surface tile offset usage on Ironlake.
      • -
      • Fix cube map layouts on Ironlake.
      • -
      • When an RB gets a new region, clear the old from the state - cache. Bug - #24119.
      • -
      • Reject shaders with uninlined function calls instead of hanging.
      • -
      -
    • - -
    • Assorted i915 driver fixes. Including but not limited to: -
        -
      • Fixed texture LOD clamping in i915 driver. - Bug - #24846.
      • -
      • Fix off-by-one for drawing rectangle. - Bug - #27408.
      • -
      -
    • - -
    • Fixed hangs in etracer on 830 and 845 - chipsets. Bug - #26557.
    • -
    • Fixed tiling of small textures on all Intel drivers.
    • -
    • Fixed crash in Savage driver when using _mesa_CopyTexImage2D. - Bug - #27652.
    • - -
    • Assorted GLX fixes. Including but not limited to: -
        -
      • Fixed __glXInitializeVisualConfigFromTags's handling of - unrecognized fbconfig tags.
      • -
      • Fixed regression with GLX_USE_GL. -
      • Fixed config chooser logic for 'mask' matching.
      • -
      • Report swap events correctly in direct rendered case (DRI2)
      • -
      • Fixed build with dri2proto which doesn't define - X_DRI2SwapInterval.
      • -
      • Get GLX_SCREEN first in __glXQueryContextInfo. - Bug - #14245.
      • -
      -
    • - -
    • Assorted GLSL fixes. Including but not limited to: -
        -
      • Change variable declared assertion into conditional in GLSL - compiler. Bug - #27921.
      • -
      • Fix instruction indexing - bugs. Bug - #27566.
      • -
      • Updated uniform location / offset encoding to be more like - other implementations.
      • -
      • Don't overwrite a driver's shader infolog with generic failure - message.
      • -
      -
    • - -
    • Fixed OSMesa build for 16 and 32-bit color channel depth. -
    • Fixed OSMesa build with hidden symbol visibility. libOSMesa no longer links to libGL. - Bug - #28305. -
    • Fixed handling of multiple render targets in fixed-function - texture envrionmnent programs.
    • -
    • Fixed conversion errors in signed_rgba8888[rev] texel - fetch.
    • -
    • Don't set srcLevel on GL_TEXTURE_RECTANGLE_ARB targets.
    • -
    • Various build fixes for OpenBSD.
    • -
    • Various build fixes for OS X.
    • -
    • Various build fixes for GCC 3.3.
    diff --git a/mesalib/docs/relnotes-7.9.html b/mesalib/docs/relnotes-7.9.html new file mode 100644 index 000000000..b09fb1dbf --- /dev/null +++ b/mesalib/docs/relnotes-7.9.html @@ -0,0 +1,137 @@ + + +Mesa Release Notes + + + + + + + +

    Mesa 7.9 Release Notes / October 4, 2010

    + +

    +Mesa 7.9 is a new development release. +People who are concerned with stability and reliability should stick +with a previous release or wait for Mesa 7.9.1. +

    +

    +Mesa 7.9 implements the OpenGL 2.1 API, but the version reported by +glGetString(GL_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 2.1. +

    +

    +See the Compiling/Installing page for prerequisites +for DRI hardware acceleration. +

    + + +

    MD5 checksums

    +
    +f1f01a7baec255f13e9468fb4b05922a  MesaLib-7.9-rc1.tar.gz
    +7ffbda3b7056c60b8f87e3082d853af1  MesaLib-7.9-rc1.tar.bz2
    +9d4650df4e5b530178d6fde840f76664  MesaLib-7.9-rc1.zip
    +a81c2e7a0c7832e67c768d6f209f2c8f  MesaGLUT-7.9-rc1.tar.gz
    +b4c1c2f0b47a07be10fa2dd42e6a63d7  MesaGLUT-7.9-rc1.tar.bz2
    +c9dd7419a19bcb24a1fe556ec2e78451  MesaGLUT-7.9-rc1.zip
    +
    + + +

    New features

    +
      +
    • New, improved GLSL compiler written by Intel. + See the Shading Language page for + more information. +
    • New, very experimental Gallium driver for R600-R700 Radeons. +
    • Support for AMD Evergreen-based Radeons (HD 5xxx) +
    • GL_EXT_timer_query extension (i965 driver and softpipe only) +
    • GL_EXT_framebuffer_multisample extension (intel drivers, MAX_SAMPLES = 1) +
    • GL_ARB_texture_swizzle extension (alias of GL_EXT_texture_swizzle) +
    • GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_program_shadow, + GL_ARB_window_pos, GL_EXT_gpu_program_parameters, + GL_ATI_texture_env_combine3, GL_MESA_pack_invert, and GL_OES_EGL_image + extensions in Gallium drivers +
    • GL_ARB_depth_clamp and GL_NV_depth_clamp extensions (in nv50 and r600 + Gallium drivers) +
    • GL_ARB_half_float_vertex extension (in nvfx, r300, r600, softpipe, + and llvmpipe Gallium drivers) +
    • GL_EXT_draw_buffers2 (in nv50, r600, softpipe, and llvmpipe Gallium + drivers) +
    • GL_EXT_texture_swizzle (in nvfx, r300, r600, softpipe, and llvmpipe + Gallium drivers) +
    • GL_ATI_texture_mirror_once (in nvfx, nv50, r300, r600, softpipe, and + llvmpipe Gallium drivers) +
    • GL_NV_conditional_render (in r300 Gallium driver) +
    • Initial "signs of life" support for Sandybridge hardware in i965 DRI + driver. +
    + + +

    Bug fixes

    +

    This list is likely incomplete.

    +
      +
    • Massive improvements to the Gallium driver for R300-R500 Radeons; this + driver is now considered stable for use as a DRI (OpenGL) driver. +
    • Bug 10908 - GLSL: gl_FogParamaters gl_Fog built-in uniform not functioning
    • +
    • Bug 13753 - Numerous bugs in GLSL uniform handling
    • +
    • Bug 16854 - GLSL function call at global scope causes SEGV
    • +
    • Bug 16856 - GLSL indexing of unsized array results in assertion failure
    • +
    • Bug 18659 - Crash in shader/slang/slang_codegen.c _slang_gen_function_call_name()
    • +
    • Bug 19089 - [GLSL] glsl1/shadow2D() cases fail
    • +
    • Bug 22622 - [GM965 GLSL] noise*() cause GPU lockup
    • +
    • Bug 23743 - For loop from 0 to 0 not optimized out
    • +
    • Bug 24553 - shader compilation times explode when using more () pairs
    • +
    • Bug 25664 - [GLSL] re-declaring an empty array fails to compile
    • +
    • Bug 25769 - [GLSL] "float" can be implicitly converted to "int"
    • +
    • Bug 25808 - [GLSL] const variable is modified successfully
    • +
    • Bug 25826 - [GLSL] declaring an unsized array then re-declaring with a size fails
    • +
    • Bug 25827 - [GLSL] vector constructor accepts too many arguments successfully
    • +
    • Bug 25829 - [GLSL] allowing non-void function without returning value
    • +
    • Bug 25830 - [GLSL] allowing non-constant-expression as const declaration initializer
    • +
    • Bug 25877 - [GLSL 1.10] implicit conversion from "int" to "float" should not be allowed
    • +
    • Bug 25878 - [GLSL] sampler is converted to int successfully
    • +
    • Bug 25994 - [GM45][GLSL] 'return' statement in vertex shader unsupported
    • +
    • Bug 25999 - [GLSL] embedded structure constructor fails to compile
    • +
    • Bug 26000 - [GLSL] allowing different parameter qualifier between the function definition and declaration
    • +
    • Bug 26001 - [GLSL 1.10] constructing matrix from matrix succeeds
    • +
    • Bug 26224 - [GLSL] Cannot get location of a uniform struct member
    • +
    • Bug 26990 - [GLSL] variable declaration in "while" fails to compile
    • +
    • Bug 27004 - [GLSL] allowing macro redefinition
    • +
    • Bug 27060 - [965] piglit glsl-fs-raytrace failure due to lack of function calls.
    • +
    • Bug 27216 - Assignment with a function call in an if statement causes an assertion failure
    • +
    • Bug 27261 - GLSL Compiler fails on the following vertex shader
    • +
    • Bug 27265 - GLSL Compiler doesnt link the attached vertex shader
    • +
    • Bug 27388 - [i965] piglit glsl-vs-arrays failure
    • +
    • Bug 27403 - GLSL struct causing "Invalid src register file ..." error
    • +
    • Bug 27914 - GLSL compiler uses MUL+ADD where it could use MAD
    • +
    • Bug 28055 - glsl-texcoord-array fails GLSL compilation
    • +
    • Bug 28374 - SIGSEGV shader/slang/slang_typeinfo.c:534
    • +
    • Bug 28748 - [i965] uninlined function calls support
    • +
    • Bug 28833 - piglit/shaders/glsl-texcoord-array fail
    • +
    • Bug 28834 - Add support for system fpclassify to GL_OES_query_matrix function for OpenBSD / NetBSD
    • +
    • Bug 28837 - varying vec4 index support
    • +
    • Bug 28845 - The GLU tesselator code has some warnings
    • +
    • Bug 28889 - [regression] wine game crash
    • +
    • Bug 28894 - slang build fails if absolute path contains spaces
    • +
    • Bug 28913 - [GLSL] allowing two version statements
    • +
    • Bug 28931 - Floating Point Exception in Warzone2100 Trunk version
    • +
    • Bug 28966 - [r300g] Dynamic branching 3 demo does not run
    • +
    • Bug 28967 - slang/slang_emit.c:350: storage_to_src_reg: Assertion `index >= 0' failed.
    • +
    • Bug 29013 - [r300g] translate_rgb_op: unknown opcode ILLEGAL OPCODE
    • +
    • Bug 29020 - [r300g] Wine d3d9 tests hardlock
    • +
    • Bug 29910 - Mesa advertises bogus GL_ARB_shading_language_120
    • +
    • Bug 30196 - [GLSL] gl_TextureMatrix{Inverse,Transpose,InverseTranspose} unsupported
    • +
    + + +

    Changes

    +
      +
    • The Mesa demo/test programs have been moved into a separate git +repository. +
    • GL/glext.h file upgraded to version 64 +
    • GL/glxext.h file upgraded to version 32 +
    • GL/wglext.h file upgraded to version 22 +
    + + + diff --git a/mesalib/docs/relnotes.html b/mesalib/docs/relnotes.html index 39b02b842..47e7f80d6 100644 --- a/mesalib/docs/relnotes.html +++ b/mesalib/docs/relnotes.html @@ -13,6 +13,7 @@ The release notes summarize what's new or changed in each Mesa release.

    -After building Mesa, the glslcompiler can be built by manually running: +After building Mesa, the compiler can be found at src/glsl/glsl_compiler

    -
    -    make realclean
    -    make linux
    -    cd src/mesa/drivers/glslcompiler
    -    make
    -
    -

    Here's an example of using the compiler to compile a vertex shader and emit GL_ARB_vertex_program-style instructions:

    -    bin/glslcompiler --debug --numbers --fs progs/glsl/CH06-brick.frag.txt
    -
    -

    -results in: -

    -
    -# Fragment Program/Shader
    -  0: RCP TEMP[4].x, UNIFORM[2].xxxx;
    -  1: RCP TEMP[4].y, UNIFORM[2].yyyy;
    -  2: MUL TEMP[3].xy, VARYING[0], TEMP[4];
    -  3: MOV TEMP[1], TEMP[3];
    -  4: MUL TEMP[0].w, TEMP[1].yyyy, CONST[4].xxxx;
    -  5: FRC TEMP[1].z, TEMP[0].wwww;
    -  6: SGT.C TEMP[0].w, TEMP[1].zzzz, CONST[4].xxxx;
    -  7: IF (NE.wwww); # (if false, goto 9);
    -  8:    ADD TEMP[1].x, TEMP[1].xxxx, CONST[4].xxxx;
    -  9: ENDIF;
    - 10: FRC TEMP[1].xy, TEMP[1];
    - 11: SGT TEMP[2].xy, UNIFORM[3], TEMP[1];
    - 12: MUL TEMP[1].z, TEMP[2].xxxx, TEMP[2].yyyy;
    - 13: LRP TEMP[0], TEMP[1].zzzz, UNIFORM[0], UNIFORM[1];
    - 14: MUL TEMP[0].xyz, TEMP[0], VARYING[1].xxxx;
    - 15: MOV OUTPUT[0].xyz, TEMP[0];
    - 16: MOV OUTPUT[0].w, CONST[4].yyyy;
    - 17: END
    +    src/glsl/glslcompiler --dump-ast myshader.vert
     
    -

    -Note that some shading language constructs (such as uniform and varying -variables) aren't expressible in ARB or NV-style programs. -Therefore, the resulting output is not always legal by definition of -those program languages. -

    -

    -Also note that this compiler driver is still under development. -Over time, the correctness of the GPU programs, with respect to the ARB -and NV languagues, should improve. -

    +Options include +
      +
    • --dump-ast - dump GPU code +
    • --dump-hir - dump high-level IR code +
    • --dump-lir - dump low-level IR code +
    • --link - ??? +
    + @@ -262,38 +186,12 @@ and NV languagues, should improve.

    The source code for Mesa's shading language compiler is in the -src/mesa/shader/slang/ directory. +src/glsl/ directory.

    -The compiler follows a fairly standard design and basically works as follows: +XXX provide some info about the compiler....

    -
      -
    • The input string is tokenized (see grammar.c) and parsed -(see slang_compiler_*.c) to produce an Abstract Syntax Tree (AST). -The nodes in this tree are slang_operation structures -(see slang_compile_operation.h). -The nodes are decorated with symbol table, scoping and datatype information. -
    • The AST is converted into an Intermediate representation (IR) tree -(see the slang_codegen.c file). -The IR nodes represent basic GPU instructions, like add, dot product, -move, etc. -The IR tree is mostly a binary tree, but a few nodes have three or four -children. -In principle, the IR tree could be executed by doing an in-order traversal. -
    • The IR tree is traversed in-order to emit code (see slang_emit.c). -This is also when registers are allocated to store variables and temps. -
    • In the future, a pattern-matching code generator-generator may be -used for code generation. -Programs such as L-BURG (Bottom-Up Rewrite Generator) and Twig look for -patterns in IR trees, compute weights for subtrees and use the weights -to select the best instructions to represent the sub-tree. -
    • The emitted GPU instructions (see prog_instruction.h) are stored in a -gl_program object (see mtypes.h). -
    • When a fragment shader and vertex shader are linked (see slang_link.c) -the varying vars are matched up, uniforms are merged, and vertex -attributes are resolved (rewriting instructions as needed). -

    The final vertex and fragment programs may be interpreted in software @@ -351,20 +249,20 @@ Extra NOP instructions will also be inserted.

    Compiler Validation

    -A Glean test has -been create to exercise the GLSL compiler. -

    -

    -The glsl1 test runs over 170 sub-tests to check that the language -features and built-in functions work properly. -This test should be run frequently while working on the compiler to catch +Developers working on the GLSL compiler should test frequently to avoid regressions.

    +

    -The test coverage is reasonably broad and complete but additional tests -should be added. +The Piglit project +has many GLSL tests and the +Glean glsl1 test +tests GLSL features.

    +

    +The Mesa demos repository also has some good GLSL tests. +

    diff --git a/mesalib/docs/subset-A.html b/mesalib/docs/subset-A.html index dac66a61b..d576bb674 100644 --- a/mesalib/docs/subset-A.html +++ b/mesalib/docs/subset-A.html @@ -16,8 +16,7 @@ -

    Copyright © 2002-2003 by Tungsten Graphics, Inc., +

    Copyright © 2002-2003 by Tungsten Graphics, Inc., Cedar Park, Texas. All Rights Reserved.

    Permission is granted to make and distribute verbatim copies of this -- cgit v1.2.3