Find a file
Paul Berry 1e3e72e305 i965: Reduce gl_MaxGeometryInputComponents to 64.
Although in principle there is no hardware limitation that prevents
gl_MaxGeometryInputComponents from being set to 128 on Gen7, we have
the following limitations in the vec4 compiler back end:

- Registers assigned to geometry shader inputs can't be spilled or
  later re-used for any other purpose.

- The last 16 registers are set aside for the "MRF hack", meaning they
  can only be used to send messages, and not for general purpose
  computation.

- Up to 32 registers may be reserved for push constants, even if there
  is sufficient register pressure to make this impractical.

A shader using 128 geometry input components, and having an input type
of triangles_adjacency, would use up:

- 1 register for r0 (which holds URB handles and various pieces of
  control information).

- 1 register for gl_PrimitiveID.

- 102 registers for geometry shader inputs (17 registers per input
  vertex, assuming DUAL_INSTANCED dispatch mode and allowing for one
  register of overhead for gl_Position and gl_PointSize, which are
  present in the URB map even if they are not used).

- Up to 32 registers for push constants.

- 16 registers for the "MRF hack".

That's a total of 152 registers, which is well over the 128 registers
the hardware supports.

Fortunately, the GLSL 1.50 spec allows us to reduce
gl_MaxGeometryInputComponents to 64.  Doing that frees up 48
registers, brining the total down to 104 registers, leaving 24
registers available to do computation.

Fixes piglit test
spec/glsl-1.50/execution/geometry/max-input-components.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
2013-10-24 22:00:57 -07:00
bin get-pick-list: Allow for non-whitespace between "CC:" and "mesa-stable" 2013-07-31 15:49:48 -07:00
docs i965: Add support for GL_ARB_texture_buffer_range. 2013-10-23 15:33:10 -07:00
doxygen doxygen: Add i965 to list of modules in html header 2013-10-10 22:20:39 -07:00
include dri: Implement a DRI vtable extension to replace the global driDriverAPI. 2013-10-24 14:04:20 -07:00
m4 build: Delete cross-compiling macros. 2013-09-09 14:42:33 -07:00
scons scons: Fix Haiku missing library 2013-10-20 19:20:59 -05:00
src i965: Reduce gl_MaxGeometryInputComponents to 64. 2013-10-24 22:00:57 -07:00
.dir-locals.el Add emacs setup for the docs/devinfo.html comment wrapping recommendation. 2012-07-11 09:20:21 -07:00
.gitattributes Disable autocrlf for Visual Studio project files. 2008-02-28 12:34:01 +09:00
.gitignore Clean up .gitignore files 2013-01-10 22:01:31 +01:00
Android.common.mk build: unify mesa version by using a VERSION file 2013-07-29 13:39:29 -07:00
Android.mk android: add ilo to the build system 2013-05-06 07:20:07 -07:00
autogen.sh build: Fix autogen.sh to allow out-of-tree builds 2012-08-14 10:54:39 -07:00
common.py scons: Allows choosing VS 10 or 11. 2013-03-12 22:04:04 +00:00
configure.ac mesa: Remove dricore from the build. 2013-10-24 14:13:09 -07:00
Makefile.am Makefile.am: Remove api_exec_es* from EXTRA_FILES. 2013-08-02 09:51:57 -07:00
SConstruct build: unify mesa version by using a VERSION file 2013-07-29 13:39:29 -07:00
VERSION mesa: Bump version to 10.0.0. 2013-10-12 08:58:18 -07:00

File: docs/README.WIN32

Last updated: 21 June 2013


Quick Start
----- -----

Windows drivers are build with SCons.  Makefiles or Visual Studio projects are
no longer shipped or supported.

Run

  scons osmesa mesagdi

to build classic mesa Windows GDI drivers; or

  scons libgl-gdi

to build gallium based GDI driver.

This will work both with MSVS or Mingw.


Windows Drivers
------- -------

At this time, only the gallium GDI driver is known to work.

Source code also exists in the tree for other drivers in
src/mesa/drivers/windows, but the status of this code is unknown.

Recipe
------

Building on windows requires several open-source packages. These are
steps that work as of this writing.

1) install python 2.7
2) install scons (latest)
3) install mingw, flex, and bison
4) install libxml2 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs
  get libxml2-python-2.9.1.win-amd64-py2.7.exe
5) install pywin32 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs
  get pywin32-218.4.win-amd64-py2.7.exe
6) install git
7) download mesa from git
  see http://www.mesa3d.org/repository.html
8) run scons

General
-------

After building, you can copy the above DLL files to a place in your
PATH such as $SystemRoot/SYSTEM32.  If you don't like putting things
in a system directory, place them in the same directory as the
executable(s).  Be careful about accidentially overwriting files of
the same name in the SYSTEM32 directory.

The DLL files are built so that the external entry points use the
stdcall calling convention.

Static LIB files are not built.  The LIB files that are built with are
the linker import files associated with the DLL files.

The si-glu sources are used to build the GLU libs.  This was done
mainly to get the better tessellator code.

If you have a Windows-related build problem or question, please post
to the mesa-dev or mesa-users list.