AgeCommit message (Collapse)AuthorFilesLines
2013-01-13Remove hacks for static MakefilesMatt Turner49-224/+6
v2: Andreas Boll <> - don't remove compatibility with scripts for the old build system v3: Andreas Boll <> - remove more obsolete hacks v4: Andreas Boll <> - add a previously removed TOP variable to fix vgapi build
2013-01-12i965: Move program_id to intel_screen instead of brw_context.Kenneth Graunke4-8/+22
According to bug #54524, I regressed oglconform's multicontext test when I reenabled the fragment shader precompile. However, these test cases only passed by miraculous coincedence. We assign each fragment program a unique ID (brw_fragment_program::id which becomes brw_wm_prog_key::program_string_id) which we obtain by storing a per-context counter. The test case uses GLX context sharing to access the same fragment program from two different contexts. This means that we share a program cache. Before the precompile, if both contexts happened to use the same shaders in the same order, we'd obtain the same program_string_ids (by virtue of doing the same computation twice). However, the more likely scenario is that they completely disagree on program_string_id. This meant that we'd have two completely different fragment shaders in the cache with the same ID, tricking us to think they were the same (aside from NOS), so we'd render using the wrong program. This patch implements a simple fix suggested by Eric: it moves the global counter out of brw_context and into intel_screen, which is shared across all contexts. A mutex protects it from concurrent access. This is also the first direct usage of pthreads in the i965 driver. Fixes 10 subcases of oglconform's multicontext test. Bugzilla: Reviewed-by: Eric Anholt <>
2013-01-12i965: Fix build error with clang.Kenneth Graunke1-3/+7
Technically, variable sized arrays are a required feature of C99, redacted to be optional in C11, and not actually part of C++ whatsoever. Gcc allows using them in C++ unless you specify -pedantic, and Clang appears to allow them for simple/POD types. exec_list is arguably POD, since it doesn't have virtual methods, but I can see why Clang would be like "meh, it's a C++ struct, say no", seeing as it's meant to support C99. Bugzilla: Reviewed-by: Matt Turner <>
2013-01-12i965/fs: Don't mix integer/float immediates in i2b handling.Kenneth Graunke1-1/+3
The simulator gets very angry about our i2b code: g3<1>D g2<0,1,0>D 0F We can't mix integer DWord and float types. The only reason to use 0F here was to share code with f2b. Split it and use 0D instead. While we don't believe anything bad will actually happen because of this, it's nice to fix the warnings and easy enough to do. Reviewed-by: Paul Berry <> Reviewed-by: Eric Anholt <>
2013-01-12i965: Add an INTEL_DEBUG=no16 option.Kenneth Graunke3-1/+4
Often when debugging, I don't want to see SIMD16 shaders. It makes INTEL_DEBUG=vs/fs output much easier to read, especially when a program dumps many shaders. Plus, I also want to verify that SIMD8 works before even considering SIMD16. v2: Fix the likeliness check (caught by Chris and Eric). Reviewed-by: Eric Anholt <> Fixing common dri dependency when using dri state trackerAlexandre Demers1-2/+2
Fixes a regression caused by b587a7595e7aae0809a8e7392e89c39df0c955b1 Bugzilla: Reviewed-by: Andreas Boll <>
2013-01-12st/mesa: set ctx->Const.UniformBufferOffsetAlignmentFredrik Höglund1-1/+4
Reviewed-by: Marek Olšák <>
2013-01-12scons: Update for xmlpool/options.h generation.José Fonseca5-0/+20
2013-01-12nv50/nvc0: Build codegen in nv50.Johannes Obermayr6-36/+45
This is required to make libnv50 independent of libnvc0.
2013-01-12winsys/sw/wayland: Fix build to properly use wayland cflagsPekka Vuorela1-1/+1
Bugzilla: Reviewed-by: Andreas Boll <>
2013-01-12texformat: use MESA_FORMAT_ARGB2101010 with GL_UNSIGNED_INT_2_10_10_10_REVJordan Justen1-1/+7
Choose MESA_FORMAT_ARGB2101010 when storing GL_RGBA + GL_UNSIGNED_INT_2_10_10_10_REV or GL_RGB + GL_UNSIGNED_INT_2_10_10_10_REV. Signed-off-by: Jordan Justen <> Reviewed-by: Ian Romanick <>
2013-01-12texstore argb2101010: merge GL_RGBA and GL_RGB casesJordan Justen1-15/+3
Signed-off-by: Jordan Justen <> Reviewed-by: Ian Romanick <>
2013-01-12glformats: support _mesa_bytes_per_pixel for 2101010+GL_RGBJordan Justen1-1/+2
Signed-off-by: Jordan Justen <> Reviewed-by: Ian Romanick <>
2013-01-12glformats: add _mesa_base_format_component_countJordan Justen2-0/+29
Signed-off-by: Jordan Justen <> Reviewed-by: Ian Romanick <>
2013-01-12glformats: add functions to detect signed/unsigned integer typesJordan Justen2-14/+46
Signed-off-by: Jordan Justen <> Reviewed-by: Ian Romanick <>
2013-01-12unpack: support unpacking MESA_FORMAT_ARGB2101010Jordan Justen1-0/+18
Note: This is a candidate for the stable branches. Signed-off-by: Jordan Justen <> Reviewed-by: Ian Romanick <>
2013-01-11mesa: Add extension tracking for {ARB,OES}_get_program_binaryIan Romanick1-0/+2
The ARB_get_program_binary spec says "OpenGL 3.0 is required." The nearly identical OES_get_program_binary extension is available for OpenGL ES 2.0, so I don't see how / why OpenGL 3.0 is a requirement for the ARB version. Let's just enable whenever GL_ARB_shader_objects is available. Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11mesa: Add GetProgramiv support for GL_PROGRAM_BINARY_LENGTHIan Romanick1-0/+3
Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11mesa: Add Get support for PROGRAM_BINARY_FORMATS and NUM_PROGRAM_BINARY_FORMATSIan Romanick1-0/+4
Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11mesa: Add tracking for GL_PROGRAM_BINARY_RETRIEVABLE_HINT stateIan Romanick2-0/+62
Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11mesa: Emit errors for geometry shader enums when ARB_gs4 is not supportedIan Romanick1-5/+15
Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11glapi: Emit dispatch for {ARB,OES}_get_program_binaryIan Romanick2-12/+16
Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11glapi: Remove spurious space from end of extension nameIan Romanick1-1/+1
Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11mesa: Add stub implementations of glGetProgramBinary and glProgramBinaryIan Romanick2-0/+63
Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11mesa: Fix the naming of _mesa_ProgramParameteriARBIan Romanick2-4/+4
After recent changes in the XML, the dispatch generators will expect this function to be named _mesa_ProgramParameteri. Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11glapi: Reorder and clean up some of the includes and commentsIan Romanick1-7/+3
Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-11mesa: Fix GL_SHADER_BINARY_FORMATS queryIan Romanick1-8/+2
There were two bugs here. First, this and several other queries were not available in a desktop GL context with GL_ARB_ES2_compatibility. Second, GL_NUM_SHADER_BINARY_FORMATS returns zero, but GL_SHADER_BINARY_FORMATS writes one element of data to the buffer. If NUM is zero, no data should be written. Fixes piglit test 'arb_get_program_binary-overrun shader'. NOTE: This is a candidate for stable release branches. Signed-off-by: Ian Romanick <> Reviewed-by: Kenneth Graunke <>
2013-01-12docs/GL3.txt: update GL3 status for r600g.Dave Airlie1-4/+4
Signed-off-by: Dave Airlie <>
2013-01-11r600g: fix warnings for htile vaDave Airlie2-2/+2
This fixes a warning about mismatched types. Signed-off-by: Dave Airlie <>
2013-01-11r600g: texture buffer object + glsl 1.40 enable support (v2)Dave Airlie10-19/+373
This adds TBO support to r600g, and with GLSL 1.40 enabled, we now get 3.1 core profiles advertised for r600g. The r600/700 implementation is a bit different from the evergreen one, as r6/7 hw lacks vertex fetch swizzles. So we implement it by passing 5 constants per sampler to the shader, the shader uses the first 4 as masks for each component and the 5th as the alpha value to OR in. Now TXQ is also broken so we have to pass a constant for the buffer size, on evergreen we just pass this, on r6/7 we pass it as the 6th element in the const info buffer. v1.1: drop return as DDX doesn't use a texture type v2: add r600/700 support. Signed-off-by: Dave Airlie <>
2013-01-11r600g: uniform buffer object supportDave Airlie2-9/+49
This adds 12 more constant buffers for use as UBOs, along with adding relative constant fetching for 2D indices. This with GLSL 1.40 enabled passes all the same tests as softpipe on my evergreen system. Signed-off-by: Dave Airlie <>
2013-01-11r600: always export a position from vertex shaderDave Airlie1-0/+17
This fixes piglit glsl-1.40-tf-no-position from gpu hanging on my rv635 at least. Signed-off-by: Dave Airlie <>
2013-01-11glcpp: Add tests for line continuationCarl Worth4-0/+46
First we test that line continuations are honored within a comment, (as recently changed in glcpp), then we test that line continuations can be disabled via an option within the context. This is tested via the new support for a test-specific command-line option passed to glcpp. Reviewed-by: Kenneth Graunke <>
2013-01-11glcpp: Rewrite line-continuation support to act globally.Carl Worth1-66/+49
Previously, we were only supporting line-continuation backslash characters within lines of pre-processor directives, (as per the specification). With OpenGL 4.2 and GLES3, line continuations are now supported anywhere within a shader. While changing this, also fix a bug where the preprocessor was ignoring line continuation characters when a line ended in multiple backslash characters. The new code is also more efficient than the old. Previously, we would perform a ralloc copy at each newline. We now perform copies only at each occurrence of a line-continuation. This commit fixes the line-continuation.vert test in piglit. Reviewed-by: Kenneth Graunke <>
2013-01-11glcpp: Add --disable-line-continuations argument to standalone glcppCarl Worth1-2/+44
This will allow testing of disabled line-continuation on a case-by-case basis, (with the option communicated to the preprocessor via the GL context). Reviewed-by: Kenneth Graunke <>
2013-01-11glcpp: Allow test-specific arguments for standalone glcpp testsCarl Worth1-2/+9
This will allow the test exercising disabled line continuations to arrange for the --disable-line-continuations argument to be passed to the standalone glcpp. Reviewed-by: Kenneth Graunke <>
2013-01-11glcpp: Honor the GL context's DisableGLSLLineContinuations optionCarl Worth1-1/+3
And simply don't call into the function that removes line continuations. Reviewed-by: Kenneth Graunke <>
2013-01-11glcpp: Accept pointer to GL context rather than just the API versionCarl Worth7-8/+21
As the preprocessor becomes more sophisticated and gains more optional behavior, it's easiest to just pass the GL context pointer to it so that it can examine any fields there that it needs to (such as API version, or the state of any driconf options, etc.). Reviewed-by: Kenneth Graunke <>
2013-01-11drirc: Add quirk to disable GLSL line continuations for Savage2Carl Worth1-0/+3
This application is known to contain shaders that: 1. Have a stray backslash as the last line of comment lines 2. Have a declaration immediately following that line Hence, interpreting that backslash as a line continuation causes the declaration to be hidden and the shader fails to compile. Fortunately, the shaders also: 3. Do not have any other intentional line-continuation characters So disabling line continuations entirely for the application fixes this problem without causing any other breakage. Reviewed-by: Kenneth Graunke <>
2013-01-11driconf: Add a new option: disable_glsl_line_continuationsCarl Worth4-1/+15
This is to enable a quirk for Savage2 which includes a shader with a stray '\' at the end of a comment line. Interpreting that backslash as a line continuation will break the compilation of the shader, so we need a way to disable this. Reviewed-by: Kenneth Graunke <>
2013-01-11driconf: Add proper dependency for compiling .mo files from .po files.Carl Worth2-21/+20
Previously this was happening unconditionally, leading to some excessive rebuilding/relinking during builds. Note that the .po files are not automatically updated due to changes to the t_options.h file. Instead, translators should continue to use "make po" manually. This is because after new strings are merged into the existing .po file, manual work is still required by translators to ensure that the translations are correct.
2013-01-11driconf: Add translation-generation to build system, don't track generated filesCarl Worth9-643/+65
Previously, the xmlpool directory had a lone Makefile to assist poeple in manually invoking a deep make in order to update the translations in options.h. We can observe that this wasn't happening in fact, (new translations had been added to de.po without being generated into options.h, and new options had been manually added directly to options.h rather than to t_options.h). Prevent both of these problems from occurring in the future by automatically generating options.h as part of the standard build of mesa. For this, the generated options.h is now removed from version control, (along with Makefile in favor of [chadv: Port the Autotools changes to Android.] Signed-off-by: Chad Versace <> Reviewed-by: Kenneth Graunke <>
2013-01-11driconf: Fix German translations by removing a couple of bogus backslashesCarl Worth1-2/+2
As can be seen, many other translation strings already include a single apostrophe just fine without any escaping. This strangely-escaped apostrophe was causing a build failure ("invalid escape sequence") resulting in no "de" translations in the final options.h file. Reviewed-by: Kenneth Graunke <>
2013-01-11driconf: Fix script to allow running from any directoryChad Versace2-4/+18
The script would work correctly only when executed from the directory that contained the script. This shortcoming was due to some hard-coded paths in the script. In order to easily invoke the script from the Android build system, we must be able to execute the script from an arbitrary directory. To enable that, this patch replaces the two hard-coded paths with new command line arguments. Signed-off-by: Chad Versace <> Reviewed-by: Carl Worth <>
2013-01-11driconf: Add some translations which have been available, but were not compiledCarl Worth1-8/+8
These translations have existed in the de.po file, but were not in the generated options.h file. This was fixed by simply running "make options.h". Reviewed-by: Kenneth Graunke <>
2013-01-11driconf: Add option definitions to source file, not generated targetCarl Worth1-0/+10
For the last two most-recently-added driconf options, their definition was manually added to options.h, a file which is intended to be automatically generated, (as part of support for translated driconf option descriptions). This means that these options would be eliminated if the generation step were performed again. Fix this by correctly adding the definitions of these options to t_options.h, (the file used as input to the generator), and not the options.h file, which is generated. Reviewed-by: Kenneth Graunke <>
2013-01-11targets/opencl: Link against instead of libgallium.aTom Stellard1-1/+1
2013-01-11drivers/radeon: Don't link against libgallium.laTom Stellard1-2/+1
This fixes several duplicate symbol errors. libllvmradeon is a simple helper library. If it requires symbols in other libraries, this should be taken care of by the gallium target that uses it (e.g.
2013-01-11mesa: Use _mesa_lookup_enum_by_nr in tex*_error_checkMatt Turner1-6/+9
Reviewed-by: Brian Paul <> Reviewed-by: Ian Romanick <>
2013-01-11mesa/es3: Add support for GL_PRIMITIVE_RESTART_FIXED_INDEXIan Romanick9-19/+67
This requires some derived state. The cut vertex used is either the value specified by glPrimitiveRestartIndex or it's hard-coded to ~0. The derived state gl_array_attrib::_RestartIndex captures this value. In addition, the derived state gl_array_attrib::_PrimitiveRestart is set whenever either gl_array_attrib::PrimitiveRestart or gl_array_attrib::PrimitiveRestartFixedIndex is set. v2: Use _mesa_is_gles3. Signed-off-by: Ian Romanick <>