Find a file
Kenneth Graunke ea681a0d64 i965/fs: Split final assembly code generation out of fs_visitor.
Compiling shaders requires several main steps:

   1. Generating FS IR from either GLSL IR or Mesa IR
   2. Optimizing the IR
   3. Register allocation
   4. Generating assembly code

This patch splits out step 4 into a separate class named "fs_generator."

There are several reasons for doing so:

   1. Future hardware has a different instruction encoding.  Splitting
      this out will allow us to replace fs_generator (which relies
      heavily on the brw_eu_emit.c code and struct brw_instruction) with
      a new code generator that writes the new format.

   2. It reduces the size of the fs_visitor monolith.  (Arguably, a lot
      more should be split out, but that's left for "future work.")

   3. Separate namespaces allow us to make helper functions for
      generating instructions in both classes: ADD() can exist in
      fs_visitor and create IR, while ADD() in fs_generator() can
      create brw_instructions.  (Patches for this upcoming.)

Furthermore, this patch changes the order of operations slightly.
Rather than doing steps 1-4 for SIMD8, then 1-4 for SIMD16, we now:

   - Do steps 1-3 for SIMD8, then repeat 1-3 for SIMD16
   - Generate final assembly code for both modes together

This is because the frontend work can be done independently, but final
assembly generation needs to pack both into a single program store to
feed the GPU.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
2012-11-26 19:52:34 -08:00
bin mesa: use .cherry-ignore in the get-pick-list.sh script 2012-11-14 20:45:33 +01:00
configs [PATCH] makefiles: use configured name for -ldrm* where possible 2012-11-16 18:50:57 +01:00
docs i965: Enable ARB_vertex_type_2_10_10_10_rev on Gen4+. 2012-11-26 16:48:29 -08:00
doxygen Finish _HAVE_FULL_GL removal 2012-10-17 19:30:34 -07:00
include radeonsi: add a new SI pci id 2012-11-21 18:49:00 -05:00
m4 build: Don't cross-compile GLSL builtin compiler 2012-11-01 18:18:21 -07:00
scons scons: Require libdrm_radeon 2.4.40. 2012-11-05 22:00:01 -08:00
src i965/fs: Split final assembly code generation out of fs_visitor. 2012-11-26 19:52:34 -08: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 Add .dirstamp to toplevel .gitignore 2012-11-21 18:25:10 +01:00
acinclude.m4 build: fix enable/disable language in ./configure --help 2012-11-10 21:32:09 +01:00
Android.common.mk build: Use AX_PTHREAD's HAVE_PTHREAD preprocessor definition 2012-10-01 15:23:04 -07:00
Android.mk radeonsi: initial WIP SI code 2012-04-13 10:32:06 -04:00
autogen.sh build: Fix autogen.sh to allow out-of-tree builds 2012-08-14 10:54:39 -07:00
common.py scons: Add option to enable floating-point textures. 2012-08-15 22:04:24 -07:00
configure.ac automake: strip LLVM_CXXFLAGS and LLVM_CPPFLAGS too 2012-11-19 09:43:29 +01:00
Makefile.am build: use git ls-files for adding all Makefile.in into the release tarball 2012-11-26 19:03:21 +01:00
SConstruct scons: Disable saving options automatically. 2011-07-01 19:04:57 +01:00

File: docs/README.WIN32

Last updated: 23 April 2011


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.


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.