Find a file
Paul Berry b961d37e61 i965/blorp: Modify manual_blend() to avoid unnecessary loss of precision.
When downsampling from an MSAA image to a single-sampled image, it is
inevitable that some loss of numerical precision will occur, since we
have to use 32-bit floating point registers to hold the intermediate
results while blending.  However, it seems reasonable to expect that
when all samples corresponding to a given pixel have the exact same
color value, there will be no loss of precision.

Previously, we averaged samples as follows:

    blend = (((sample[0] + sample[1]) + sample[2]) + sample[3]) / 4

This had the potential to lose numerical precision when all samples
have the same color value, since ((sample[0] + sample[1]) + sample[2])
may not be precisely representable as a 32-bit float, even if the
individual samples are.

This patch changes the formula to:

    blend = ((sample[0] + sample[1]) + (sample[2] + sample[3])) / 4

This avoids any loss of precision in the event that all samples are
the same, by ensuring that each addition operation adds two equal
values.

As a side benefit, this puts the formula in the form we will need in
order to implement correct blending of integer formats.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
2012-07-20 09:35:37 -07:00
bin mesa: remove obsolete confdiff.sh 2012-06-20 01:51:38 -07:00
configs automake: convert libglapi 2012-07-13 12:44:07 +01:00
docs wayland: Support EGL_WIDTH and EGL_HEIGHT queries for wl_buffer 2012-07-19 14:03:17 -04:00
doxygen Fix building glsl when using automake-1.12 after 68e04cc6 2012-07-15 15:27:26 +01:00
include wayland: Use existing EGL_TEXTURE_FORMAT for querying wl_buffer texture format 2012-07-19 14:03:17 -04:00
scons gallivm,draw,llvmpipe: Support wider native registers. 2012-07-17 13:42:39 +01:00
src i965/blorp: Modify manual_blend() to avoid unnecessary loss of precision. 2012-07-20 09:35:37 -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 automake: Move top-level makefile to automake. 2012-06-11 09:28:00 -07:00
acinclude.m4 autoconf: Attempt to figure out the PIC flags for the platform 2008-05-09 07:05:16 -07:00
Android.common.mk android: pass -std=c99 by default 2011-11-26 11:42:08 +08:00
Android.mk radeonsi: initial WIP SI code 2012-04-13 10:32:06 -04:00
autogen.sh autogen.sh: Honor NOCONFIGURE environment variable 2011-09-19 19:53:49 +01:00
common.py scons: Fix SCons build infrastructure for FreeBSD. 2012-05-24 18:49:40 -07:00
configure.ac configure.ac: Further LLVM fixups. 2012-07-17 19:12:01 +02:00
Makefile.am automake: convert libglsl 2012-07-13 12:43:41 +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.