Find a file
Kenneth Graunke 72473658c5 i965: Fix brw_render_cache_set_check_flush's PIPE_CONTROLs.
Our driver uses the brw_render_cache mechanism to track buffers we've
rendered to and are about to sample from.

Previously, we did a single PIPE_CONTROL with the following bits set:
- Render Target Flush
- Depth Cache Flush
- Texture Cache Invalidate
- VF Cache Invalidate
- Instruction Cache Invalidate
- CS Stall

This combined both "top of pipe" invalidations and "bottom of pipe"
flushes, which isn't how the hardware is intended to be programmed.

The "top of pipe" invalidations may happen right away, without any
guarantees that rendering using those caches has completed.  That
rendering may continue altering the caches.  The "bottom of pipe"
flushes do wait for the rendering to complete.  The CS stall also
prevents further work from happening until data is flushed out.

What we wanted to do was wait for rendering complete, flush the new
data out of the render and depth caches, wait, then invalidate any
stale data in read-only caches.  We can accomplish this by doing the
"bottom of pipe" flushes with a CS stall, then the "top of pipe"
flushes as a second PIPE_CONTROL.  The flushes will wait until the
rendering is complete, and the CS stall will prevent the second
PIPE_CONTROL with the invalidations from executing until the first
is done.

Fixes dEQP-GLES3.functional.texture.specification.teximage2d_pbo
subtests on Braswell and Skylake.  These tests hit the meta PBO
texture upload path, which binds the PBO as a texture and samples
from it, while rendering to the destination texture.  The tests
then sample from the texture.

For now, we leave Gen4-5 alone.  It probably needs work too, but
apparently it hasn't even been setting the (G45+) TC invalidation
bit at all...

v2: Add Sandybridge post-sync non-zero workaround, for safety.

Cc: mesa-stable@lists.freedesktop.org
Suggested-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
2016-03-28 15:23:56 -07:00
bin mesa; add get-extra-pick-list.sh script into bin/ 2016-02-29 11:25:35 +00:00
docs st/mesa: enable GL_ATI_fragment_shader 2016-03-27 19:58:33 +02:00
doxygen doxygen: Remove doxygen_sqlite3.db with 'make clean' 2015-07-11 20:48:25 +01:00
include radeonsi: add Polaris PCI IDs 2016-03-24 23:08:12 -04:00
m4 mesa/build: add OpenSWR to build 2016-03-02 18:38:42 -06:00
scons scons: Eliminate MSVC2008 compatibility. 2016-02-11 21:36:00 +00:00
src i965: Fix brw_render_cache_set_check_flush's PIPE_CONTROLs. 2016-03-28 15:23:56 -07:00
.dir-locals.el dir-locals.el: set case-label offset to 0 2016-02-03 15:44:51 -05:00
.gitattributes
.gitignore opencl: fix .gitignore for .install-gallium-links 2016-03-09 17:16:52 +00:00
.travis.yml travis: Add a test build with scons. 2015-12-01 15:09:56 -08:00
Android.common.mk Android: remove headers from LOCAL_SRC_FILES 2016-02-29 10:51:44 +00:00
Android.mk Android: clean-up and fix DRI module path handling 2016-02-29 10:51:44 +00:00
appveyor.yml appveyor: Bump shallow clone depth. 2016-02-03 19:37:19 +00:00
autogen.sh
CleanSpec.mk android: Depend on gallium_dri from EGL, instead of linking in gallium. 2015-06-09 11:38:45 -07:00
common.py common.py: Fix PEP 8 issues. 2015-03-16 22:55:08 -07:00
configure.ac r600g: remove TGSI->LLVM translation 2016-03-20 00:57:02 +01:00
install-gallium-links.mk install-gallium-links: port changes from install-lib-links 2016-02-29 10:51:45 +00:00
install-lib-links.mk
Makefile.am automake: explicitly set distcheck configure flags 2016-02-29 10:51:45 +00:00
SConstruct
VERSION mesa: bump version 2016-02-22 10:38:37 -05: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 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.

- install python 2.7
- install scons (latest)
- install mingw, flex, and bison
- install pywin32 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs
  get pywin32-218.4.win-amd64-py2.7.exe
- install git
- download mesa from git
  see http://www.mesa3d.org/repository.html
- 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.