summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2010-07-20glcpp: Avoid accidental token pasting in preprocessed result.Carl Worth
Consider this test case: #define EMPTY int foo = 1+EMPTY+4; The expression should compile as the sequence of tokens 1, PLUS, UNARY_POSITIVE, 4. But glcpp has been failing for this case since it results in the string "1++4" which a compiler correctly sees as a syntax error, (1, POST_INCREMENT, 4). We fix this by changing any macro with an empty definition to result in a single SPACE token rather than nothing. This then gives "1+ +4" which compiles correctly. This commit does touch up the two existing test cases which already have empty macros, (to add the space to the expected result). It also adds a new test case to exercise the above scenario.
2010-07-20glcpp: Add missing include in xtalloc.cCarl Worth
Without this, the compiler was legitimately complaining about missing declarations for all of the functions being defined here.
2010-07-20glcpp: Add static keyword to several functions in the parser.Carl Worth
This quiets warnings about missing declarations otherwise.
2010-07-20glcpp: Avoid warnings in generated flex code.Carl Worth
We define the YY_NO_INPUT macro to avoid one needless function being generated. for the other needless functions, (yyunput and yy_top_state), we add a new UNREACHABLE start condition and call these functions from an action there. This doesn't change functionality at all, (since we never enter the UNREACHABLE start condition), but makes the compiler stop complaining about these two functions being defined but not used.
2010-07-20glcpp-lex: Declare some generated functions to eliminate compiler warnings.Carl Worth
It's really a bug in flex that these functions are generated with neither a declaration nor the 'static' keyword, but we can at least avoid the warnings this way.
2010-07-20glcpp: Fix support for nested #ifdef and nested #ifndefCarl Worth
Previously, if the outer #ifdef/#ifndef evaluated to false, the inner directive would not be parsed correctly, (the identifier as the subject of the #ifdef/#ifndef would inadvertently be skipped along with the other content correctly being skipped). We fix this by setting the lexing_if state in each case here. We also add a new test to the test suite to ensure that this case is tested.
2010-07-20glcpp: Support #if(expression) with no intervening space.Carl Worth
And add a test case to ensure that this works.
2010-07-20glcpp: Fix use-after-free error from #undef directive.Carl Worth
By taking advantage of the recently-added hash_table_remove function. With this change, all existing tests are now valgrind-clean.
2010-07-20hash_table: Add new hash_table_remove function.Carl Worth
To allow for the removal of a single element from a hash table.
2010-07-20glcpp: Make test suite test for valgrind cleanliness.Carl Worth
As it turns out, 4 of our current tests are not valgrind clean, (use after free errors or so), so this will be helpful for investigating and fixing those.
2010-07-20glcpp: Make test suite report final count of passed/total tests.Carl Worth
And report PASS or FAIL for each test along the way as well.
2010-07-20Build a standalone glcpp binary.Carl Worth
This is convenient for testing the preprocessor independent of the rest of mesa, (just run glcpp-test in the src/glsl/glcpp/tests).
2010-07-20glcpp: Delete copies of hash_table.c, hash_table.h, and other headers.Carl Worth
These were only ever intended to exist in the original, standalone implementation of glcpp, (with the idea of dropping them as soon as the code moved into mesa). The current build system wasn't compiling this C file, but the presence of the header files could cause problems if the two copies diverge in the future. We head those problems off by deleting al of these redundant files.
2010-07-20glsl2: Fix handling of out values in function inlining.Eric Anholt
The parameters[i] is our inlined variables representing the parameters, so they are always ir_var_auto. Walk the signature params in handling "out" values like we do for "in" values to find the mode. Fixes (with the previous 2 commits): glsl1-function call with in, out params glsl1-function call with inout params
2010-07-20glsl2: Don't mark a variable as constant if it was used as an out param.Eric Anholt
2010-07-20glsl2: Always insert function calls into the instruction stream.Eric Anholt
If they have a return value, this means putting it into a temporary and making a deref of the temp be the rvalue, since we don't know if the rvalue will be used or not.
2010-07-20radeon: Remove unnecessary header.Vinson Lee
2010-07-20glsl2: Add definitions of the builtin constants present in GLSL 1.10.Eric Anholt
Fixes: glsl1-built-in constants
2010-07-20glsl2: Fix asin() implementation.Eric Anholt
I'd flipped around the order of two operations in paren-balancing adventures, and left out the multiply by sign(x) required for negative x. Fixes: glsl1-acos(vec4) function glsl1-asin(vec4) function glsl1-atan(vec4) function
2010-07-20r600g: split trans unit computationJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-20glsl2: notEqual() produces a boolean value, not the base type of the args.Eric Anholt
Fixes: glsl1-vector relational (bvec2 ==,!=) glsl1-vector relational (vec4 !=)
2010-07-20glsl2: Constant-fold assignment conditions.Eric Anholt
2010-07-20glsl2: Don't validate IR if there were compilation errorsIan Romanick
2010-07-20ir_to_mesa: Fix swizzled writemasks with swapped component ordering.Eric Anholt
I hadn't noticed you could do this, but glsl1 tests caught it. Fixes: glsl1-Swizzled writemask glsl1-Swizzled writemask (2) glsl1-Swizzled writemask (rgba) glsl1-Swizzled writemask (stpq)
2010-07-20st/mesa: implement and advertise GL_ARB_draw_elements_base_vertexMarek Olšák
Signed-off-by: Brian Paul <brianp@vmware.com>
2010-07-20draw: correctly handle max_index=0xffffffff case in vcache codeBrian Paul
If max_index=0xffffffff and elt_bias > 0 the test for elt_bias + max_index >= DRAW_PIPE_MAX_VERTICES was wrong. Check earlier if max_index=0xffffffff and do the "fail" case. This fixes the piglit draw-elements-base-vertex test (and probably some other things).
2010-07-20st/mesa: implement depth texture modesMarek Olšák
2010-07-20mesa: call ctx->Driver.ChooseTextureFormat() only when necessary.Brian Paul
When defining mipmap level 'L' and level L-1 exists and the new level's internalFormat matches level L-1's internalFormat, then use the same hw format. Otherwise, do the regular ctx->Driver.ChooseTextureFormat() call. This avoids a problem where we end up choosing different hw formats for different mipmap levels depending on how the levels are defined (glTexImage vs. glCopyTexImage vs. glGenerateMipmap, etc). The root problem is the ChooseTextureFormat() implementation in some drivers uses the user's glTexImage format/type parameters in the choosing heuristic. Later mipmap levels might be generated with different calls (ex: glCopyTexImage()) so we don't always have format/type info and the driver may choose a different format. For more background info see the July 2010 mesa-dev thread "Bug in _mesa_meta_GenerateMipmap"
2010-07-20graw/tests: pass -e option to test draw_elements_instanced()Brian Paul
2010-07-20softpipe: Support non-depth-stencil formats in sp_tile_cache_flush_clear().Michal Krol
2010-07-20glx: #ifdef DRI specific prototypeKristian Høgsberg
https://bugs.freedesktop.org/show_bug.cgi?id=29162
2010-07-20glx/dri2: Fix dri2CopySubBuffer() again.Michel Dänzer
Only refresh the fake front buffer if there is one, and only destroy the region once. Fixes X11 protocol errors reported by 'mcgreg' on IRC.
2010-07-20util: mempool: initialize last block's magic number in a pageMarek Olšák
2010-07-20st/egl: Fixes for recent GLX cleanup.Chia-I Wu
Mainly, the type of __GLXdisplayPrivateRec::screenConfigs has changed from "__GLXscreenConfigs *" to "__GLXscreenConfigs **".
2010-07-20st/dri: Remove driFrameTrackingExtension.Chia-I Wu
The extension has been removed in 22266c391fbe17603b15a83d4ccf5fa9455ccf8d.
2010-07-19glx: Move DRI CopySubBuffer extension to DRI1 codeKristian Høgsberg
We do this in the X server for DRI2.
2010-07-19glx: Move driver_configs to DRI screen privatesKristian Høgsberg
2010-07-19glx: Move drawHash to display privateKristian Høgsberg
The XIDs are display wide so the natural location of the hash is here. This way we don't have to lookup in each of the screen hashes.
2010-07-19glx: Don't use __glXInitialize() when we might be holding __glXLock()Kristian Høgsberg
2010-07-19glx: Workaround mismatch in signedness between extensions and protocolKristian Høgsberg
The DRI2 protocol for ust, msc and sbc are unsigned but the extensions talk about int64_t. Do a little dance to make the compiler shut up.
2010-07-19glx: Move __DRIdrawable pointers to DRI drawable privatesKristian Høgsberg
2010-07-19glx: Remove support for MESA_swap_frame_usageKristian Høgsberg
The extension never worked, the implementation returns GLX_BAD_CONTEXT when enabling the frame tracking.
2010-07-19glx: Move __driScreen into the dri screen privatesKristian Høgsberg
2010-07-19glx: Move DRI1 specific extensions and code to DRI1 screen privateKristian Høgsberg
2010-07-19glx: Move DRI2 extensions to DRI2 screen privateKristian Høgsberg
2010-07-19glx: Drop support for GLX_MESA_allocate_memoryKristian Høgsberg
Only r200 implemented it.
2010-07-19glx: Add screen privates for dri drivers and moved some fields thereKristian Høgsberg
GLXscreenConfigs is badly named and a dumping ground for a lot of stuff. This patch creates private screen structs for the dri drivers and moves some of their fields over there.
2010-07-19glx: Rename various DRI structs away from obnoxious __GLXfooRec conventionKristian Høgsberg
Enough is enough.
2010-07-19glx: Factor out common code from dri2WaitGL() and dri2WaitX()Kristian Høgsberg
2010-07-19glx: Dont use dri2WaitX() to update fake frontKristian Høgsberg
This saves a superfluous flush and a create/destryo region.