d5c918f6adb2f7f72a759607c8f76e7616656c13 |
|
16-Jul-2012 |
Tomeu Vizoso <tomeu@tomeuvizoso.net> |
glsl: Add support for OES_standard_derivatives in GLSL ES. Previously, we advertised the extension but the builtin functions were enabled only for GLSL and not for ES. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52003 Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
551bdf25bc4e57bea51c54da7e31c44c507e6c9f |
|
22-Jun-2012 |
Eric Anholt <eric@anholt.net> |
glsl: Add support for default layout qualifiers for uniforms. I ended up having to add rallocing of the ast_type_qualifier in order to avoid pulling in ast.h for glsl_parser_extras.h, because I wanted to track an ast_type_qualifier in the state. Fixes piglit ARB_uniform_buffer_object/row-major. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
3a90dc22d1c74e8719c95221f15043e7f3e69286 |
|
31-Jul-2012 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Refactor #version validation to be more future-proof. The previous implementation required a flag in _mesa_glsl_parse_state and line of code to initialize it for every version of the shading language we intend to support. As we look to add 150, 330, 400, 410, 420, and beyond, this gets rather unwieldy. This patch retains the switch statement (to reject, say, #version 111), but removes all the bits. Code to check for ctx->API == API_OPENGL_CORE could easily be added to the 110 and 120 cases to reject those. v2: Use _mesa_is_desktop_gl to preserve the existing behavior in the presence of the new API_OPENGL_CORE enumeration. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> [v1]
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
4aecd8f0316833348bb6fc392eb1aeea2410a206 |
|
24-Jul-2012 |
Jordan Justen <jordan.l.justen@intel.com> |
glsl: add support for using API_OPENGL_CORE Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
f7561e8ecd80e915150ca63c0c79a5f9839c8e12 |
|
27-Apr-2012 |
Eric Anholt <eric@anholt.net> |
glsl: Turn UBO variable declarations into ir_variables and check qualifiers. Fixes piglit layout-*-non-uniform and layout-*-within-block. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
912a429bc529a017a426f06631b31da1c0eaa3ae |
|
26-Apr-2012 |
Eric Anholt <eric@anholt.net> |
glsl: Don't hide the type of struct_declaration_list. I've been trying to derive from this for UBO support, and the slightly obfuscated types were putting me over the edge. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
7fabb2b5939c8640075136fec15d6b87bad9c9dd |
|
25-Dec-2011 |
Vincent Lejeune <vljn@ovi.com> |
glsl: Parser handles "#extension GL_ARB_uniform_buffer_object" Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
199771bc325900eb1d3acc7fa03808894a94fdb2 |
|
30-Apr-2012 |
Olivier Galibert <galibert@pobox.com> |
glsl: Scaffolding for ARB_shader_bit_encoding. That adds support for activating the extension. It doesn't actually *do* anything yet, of course. Signed-off-by: Olivier Galibert <galibert@pobox.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
e21b9f1f19d2345026a7fbe095a776d0b64557ec |
|
04-May-2012 |
Eric Anholt <eric@anholt.net> |
glsl: Remove the opt_discard_simplification pass. This conflicts with the GLSL 1.30+ rules for derivatives after a discard has occurred. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
d5a10dba6464d6cc40b3abcd6b704fb087e1056c |
|
02-Apr-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
glsl: report errors via GL_ARB_debug_output Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
8c99906cf5c8825ada0699f61926864e568ca69a |
|
02-Apr-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
glsl: add gl_context member Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
48e8a010aebbb40c75698e2aa8854d129c89f359 |
|
02-Apr-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
glsl: consolidate error/warning code And lay the groundwork for GL_ARB_debug_output. v2: Add descriptive comments. Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
60177d5e2aec07ed6386a6935b118a356d58c4ec |
|
03-Oct-2010 |
Eric Anholt <eric@anholt.net> |
glsl: Add an array splitting pass. I've had this code laying around almost done for a long time. The idea is like opt_structure_splitting, that we've got a bunch of transforms at the GLSL IR level that only understand scalars and vectors, which just skip complicated dereferences. While driver backends may manage some optimization after they split matrices up themselves, it would be better to bring all of our optimization to bear on the problem. While I wasn't expecting changes quite yet, a few programs end up winning: a gstreamer convolution shader, and the Humus dynamic branching demo: Total instructions: 269430 -> 269342 3/2148 programs affected (0.1%) 1498 -> 1410 instructions in affected programs (5.9% reduction)
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
b2c0df2b60a77b043d461f265c85d8b5b066a008 |
|
30-Mar-2012 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Use (const char *) in AST nodes rather than plain (char *). Nothing actually relied on them being mutable, and there was at least one cast which discarded const qualifiers. The next patch would have introduced many more. Casting away const qualifiers should be avoided if at all possible. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
ac5a5b324335195b5a5ed98775ce442c573e7e1d |
|
08-Mar-2012 |
Eric Anholt <eric@anholt.net> |
glsl: Add support for parsing #version 140. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
22d81f154fed9e004cca91807808ae3b81b01ced |
|
28-Jan-2012 |
Eric Anholt <eric@anholt.net> |
glsl: Save and restore the whole switch state for nesting. This stuffs them all in a struct for sanity. Fixes piglit glsl-1.30/execution/switch/fs-uniform-nested. NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
b9e27cc1426e3242a003fa5ae91fab330694009a |
|
18-Jan-2012 |
Eric Anholt <eric@anholt.net> |
mesa: Add a flag for forcing all GLSL extensions to "warn". NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
fa0a9ac5cdf49865cfc289c4326c73c9dd4a61c5 |
|
23-Dec-2011 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl: Track descriptions of some expressions that can't be l-values Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Paul Berry <stereotype441@gmail.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
a92ee4abfe5c0bdd9cc921dee5f18436f1df8a4d |
|
19-Nov-2011 |
Marek Olšák <maraeo@gmail.com> |
glsl: convervative_depth is not allowed in the vertex shader Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
bbcb648bc2f45dd85e33c7301527c8f6d97cbce6 |
|
19-Nov-2011 |
Marek Olšák <maraeo@gmail.com> |
mesa: rename the AMD_conservative_depth extension flag to ARB Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
5c02e2e2de75b9d18ca25b4f1cba38c4a89c5bd0 |
|
08-Nov-2011 |
Dan McCabe <zen3d.linux@gmail.com> |
glsl: Generate IR for switch statements Up until now modifying the GLSL compiler has been pretty straightforward. This is where things get interesting. But still pretty straightforward. Switch statements can be thought of a series of if/then/else statements. Case labels are compared with the value of a test expression and the case statements are executed if the comparison is true. There are a couple of aspects of switch statements that complicate this simple view of the world. The primary one is that cases can fall through sequentially to subsequent case, unless a break statement is encountered, in which case, the switch statement exits completely. But break handling is further complicated by the fact that a break statement can impact the exit of a loop. Thus, we need to coordinate break processing between switch statements and loop statements. The code generated by a switch statement maintains three temporary state variables: int test_value; bool is_fallthru; bool is_break; test_value is initialized to the value of the test expression at the head of the switch statement. This is the value that case labels are compared against. is_fallthru is used to sequentially fall through to subsequent cases and is initialized to false. When a case label matches the test expression, this state variable is set to true. It will also be forced to false if a break statement has been encountered. This forcing to false on break MUST be after every case test. In practice, we defer that forcing to immediately after the last case comparison prior to executing a case statement, but that is an optimization. is_break is used to indicate that a break statement has been executed and is initialized to false. When a break statement is encountered, it is set to true. This state variable is then used to conditionally force is_fallthru to to false to prevent subsequent case statements from executing. Code generation for break statements depends on whether the break statement is inside a switch statement or inside a loop statement. If it inside a loop statement is inside a break statement, the same code as before gets generated. But if a switch statement is inside a loop statement, code is emitted to set the is_break state to true. Just as ASTs for loop statements are managed in a stack-like manner to handle nesting, we also add a bool to capture the innermost switch or loop condition. Note that we still need to maintain a loop AST stack to properly handle for-loop code generation on a continue statement. Technically, we don't (yet) need a switch AST stack, but I am using one for orthogonality with loop statements, in anticipation of future use. Note that a simple boolean stack would have sufficed. We will illustrate a switch statement with its analogous conditional code that a switch statement corresponds to by examining an example. Consider the following switch statement: switch (42) { case 0: case 1: gl_FragColor = vec4(1.0, 2.0, 3.0, 4.0); case 2: case 3: gl_FragColor = vec4(4.0, 3.0, 2.0, 1.0); break; case 4: default: gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); } Note that case 0 and case 1 fall through to cases 2 and 3 if they occur. Note that case 4 and the default case must be reached explicitly, since cases 2 and 3 break at the end of their case. Finally, note that case 4 and the default case don't break but simply fall through to the end of the switch. For this code, the equivalent code can be expressed as: int test_val = 42; // capture value of test expression bool is_fallthru = false; // prevent initial fall through bool is_break = false; // capture the execution of a break stmt is_fallthru |= (test_val == 0); // enable fallthru on case 0 is_fallthru |= (test_val == 1); // enable fallthru on case 1 is_fallthru &= !is_break; // inhibit fallthru on previous break if (is_fallthru) { gl_FragColor = vec4(1.0, 2.0, 3.0, 4.0); } is_fallthru |= (test_val == 2); // enable fallthru on case 2 is_fallthru |= (test_val == 3); // enable fallthru on case 3 is_fallthru &= !is_break; // inhibit fallthru on previous break if (is_fallthru) { gl_FragColor = vec4(4.0, 3.0, 2.0, 1.0); is_break = true; // inhibit all subsequent fallthru for break } is_fallthru |= (test_val == 4); // enable fallthru on case 4 is_fallthru = true; // enable fallthru for default case is_fallthru &= !is_break; // inhibit fallthru on previous break if (is_fallthru) { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); } The code generate for |= and &= uses the conditional assignment capabilities of the IR. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
85beb39e14556cf02f58116fd287120cd1defbd5 |
|
08-Nov-2011 |
Dan McCabe <zen3d.linux@gmail.com> |
glsl: Reference data structure ctors in grammar We now tie the grammar to the ctors of the ASTs they reference. This requires that we actually have definitions of the ctors. In addition, we also need to define "print" and "hir" methods for the AST classes. The Print methods are pretty simple to flesh out. However, at this stage of the development, we simply stub out the "hir" methods and flesh them out later. Also, since actual class instances get returned by the productions in the grammar, we also need to designate the type of the productions that reference those instances. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
2903816aadb281716b6c59a5a48aeadb84a08f50 |
|
23-Oct-2011 |
Chia-I Wu <olv@lunarg.com> |
glsl: add support for GL_OES_EGL_image_external This extension introduces a new sampler type: samplerExternalOES. texture2D (and texture2DProj) can be used to do a texture look up in an external texture. Reviewed-by: Brian Paul <brianp@vmware.com> Acked-by: Jakob Bornecrantz <jakob@vmware.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
1d5d67f8adac9f94715de9804adb536d9a7ec5ee |
|
21-Oct-2011 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl: Add uniform_locations_assigned parameter to do_dead_code opt pass Setting this flag prevents declarations of uniforms from being removed from the IR. Since the IR is directly used by several API functions that query uniforms in shaders, uniform declarations cannot be removed after the locations have been set. However, it should still be safe to reorder the declarations (this is not tested). Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41980 Tested-by: Brian Paul <brianp@vmware.com> Reviewed-by: Bryan Cain <bryancain3@gmail.com> Cc: Vinson Lee <vlee@vmware.com> Cc: José Fonseca <jfonseca@vmware.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
0fabf8e8dc96a0eb8a9fbbac760d4faceee3af48 |
|
20-Sep-2011 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Defer initialization of built-in functions until they're needed. Very simple shaders don't actually use GLSL built-ins. For example: - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; - gl_FragColor = vec4(0.0); Both of the shaders used by _mesa_meta_glsl_Clear() also qualify. By waiting to initialize the built-ins until the first time we need to look for a signature, we can avoid the overhead entirely in these cases. Makes piglit run roughly 18% faster (255 vs. 312 seconds). Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
60df737ad57c20701b66d7cd3f63d1dc75745986 |
|
07-Sep-2011 |
Eric Anholt <eric@anholt.net> |
glsl: Don't do structure splitting until link time. We were splitting on each side of an unlinked program, and the two sides lost track of which variables they referenced, resulting in assertion failure during validation. Fixes piglit link-struct-uniform-usage. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
b9eb4d8a59699e233255113acafae220c3d8fe3c |
|
09-Aug-2011 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Implement the GL_ARB_conservative_depth extension. It's the same as GL_AMD_conservative_depth. The specs have slight differences in wording, but don't differ in content or behavior. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
3097715d41da4b725b7ce9f9d5bbc0f684cbf0a6 |
|
25-Jun-2011 |
Paul Berry <stereotype441@gmail.com> |
glsl: Rewrote _mesa_glsl_process_extension to use table-driven logic. Instead of using a chain of manually maintained if/else blocks to handle "#extension" directives, we now consult a table that specifies, for each extension, the circumstances under which it is available, and what flags in _mesa_glsl_parse_state need to be set in order to activate it. This makes it easier to add new GLSL extensions in the future, and fixes the following bugs: - Previously, _mesa_glsl_process_extension would sometimes set the "_enable" and "_warn" flags for an extension before checking whether the extension was supported by the driver; as a result, specifying "enable" behavior for an unsupported extension would sometimes cause front-end support for that extension to be switched on in spite of the fact that back-end support was not available, leading to strange failures, such as those in https://bugs.freedesktop.org/show_bug.cgi?id=38015. - "#extension all: warn" and "#extension all: disable" had no effect. Notes: - All extensions are currently marked as unavailable in geometry shaders. This should not have any adverse effects since geometry shaders aren't supported yet. When we return to working on geometry shader support, we'll need to update the table for those extensions that are available in geometry shaders. - Previous to this commit, if a shader mentioned ARB_shader_texture_lod, extension ARB_texture_rectangle would be automatically turned on in order to ensure that the types sampler2DRect and sampler2DRectShadow would be defined. This was unnecessary, because (a) ARB_shader_texture_lod works perfectly well without those types provided that the builtin functions that reference them are not called, and (b) ARB_texture_rectangle is enabled by default in non-ES contexts anyway. I eliminated this unnecessary behavior in order to make the behavior of all extensions consistent. NOTE: This is a candidate for the 7.10 and 7.11 branches. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
26b566e19cbfa189a6a158718f21859c0b7ed090 |
|
03-Jun-2011 |
Paul Berry <stereotype441@gmail.com> |
AST dump: fixed printing of conditionals. ast_expression::print() had an incorrect index into the subexpressions array, so (a ? b : c) was being incorrectly rendered as (a ? b : b). Signed-off-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
5a3a242a8fc4b9f0cac0e40786dd0c4831517473 |
|
19-Oct-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Add compiler support for ARB_shader_texture_lod. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
5ba2e7adf01aaa855e36a577a47de8f4ddace99c |
|
02-May-2011 |
Marek Olšák <maraeo@gmail.com> |
mesa: implement AMD_shader_stencil_export It's just an alias of the ARB variant with some GLSL compiler changes. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
6a35cbb656e0f8a2479a63eadefb1ab85f42d490 |
|
03-Apr-2011 |
Eric Anholt <eric@anholt.net> |
glsl/opt_cpe: Reenable opt_copy_propagation_elements.cpp pass.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
03eade164d45cc35422dfc03aeaf579c9c3183f9 |
|
08-Apr-2011 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl: Make GL_ARB_shader_stencil_export enable block be similar to other blocks Tested-by: Brian Paul <brianp@vmware.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
f2bda1b5664cd8a8744798926f2562212229d938 |
|
08-Apr-2011 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl: Only let a shader enable GL_ARB_draw_instanced if the driver supports it Also make the GL_ARB_draw_instanced block follow the same pattern as the other blocks. Tested-by: Brian Paul <brianp@vmware.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
0a163cf56d1e412629cb802480998a982a47bb3c |
|
26-Feb-2011 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Enable GL_OES_texture_3D extension for ES2.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
60aab5f335537e5b6788132e2563865243483750 |
|
08-Feb-2011 |
Eric Anholt <eric@anholt.net> |
glsl: Disable the new copy propagation pass until it gets fixed. It apparently regressed a bunch of ES2 cases.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
e31266ed3e3667c043bc5ad1abd65cfdb0fa7fdb |
|
25-Jan-2011 |
Eric Anholt <eric@anholt.net> |
glsl: Add a new opt_copy_propagation variant that does it channel-wise. This patch cleans up many of the extra copies in GLSL IR introduced by i965's scalarizing passes. It doesn't result in a statistically significant performance difference on nexuiz high settings (n=3) or my demo (n=10), due to brw_fs.cpp's register coalescing covering most of those extra moves anyway. However, it does make the debug of wine's GLSL shaders much more tractable, and reduces instruction count of glsl-fs-convolution-2 from 376 to 288.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
a7d350790b4d0416117bc785aa77de52e9298a01 |
|
01-Feb-2011 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Fix memory error when creating the supported version string. Passing ralloc_vasprintf_append a 0-byte allocation doesn't work. If passed a non-NULL argument, ralloc calls strlen to find the end of the string. Since there's no terminating '\0', it runs off the end. Fixes a crash introduced in 14880a510a1a288df0778395097d5a52806abfb0.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
14880a510a1a288df0778395097d5a52806abfb0 |
|
01-Feb-2011 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl: Reject shader versions not supported by the implementation Previously we'd happily compile GLSL 1.30 shaders on any driver. We'd also happily compile GLSL 1.10 and 1.20 shaders in an ES2 context. This has been a long standing FINISHME in the compiler. NOTE: This is a candidate for the 7.9 and 7.10 branches
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
d3073f58c17d8675a2ecdd5dfa83e5520c78e1a8 |
|
21-Jan-2011 |
Kenneth Graunke <kenneth@whitecape.org> |
Convert everything from the talloc API to the ralloc API.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
8ba260e09910d6906fba17a78eee6d1b0cf8069d |
|
27-Jan-2011 |
Chad Versace <chad.versace@intel.com> |
glsl: Enable AMD_conservative_depth in parser All the necessary compiler infrastructure for AMD_conservative_depth is in place, so it's safe to enable it in the parser.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
58c988ada56114b56477983f66b4039219f1a82c |
|
18-Jan-2011 |
Eric Anholt <eric@anholt.net> |
glsl: Skip the rest of loop unrolling if no loops were found. Shaves 1.6% (+/- 1.0%) off of ff_fragment_shader glean texCombine time (n=5).
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
652901e95b4ed406293d0e1fabee857c054119b1 |
|
15-Jan-2011 |
Brian Paul <brianp@vmware.com> |
Merge branch 'draw-instanced' Conflicts: src/gallium/auxiliary/draw/draw_llvm.c src/gallium/drivers/llvmpipe/lp_state_fs.c src/glsl/ir_set_program_inouts.cpp src/mesa/tnl/t_vb_program.c
|
7ce186358e881d1e30eda716a8dea73d2dab2ee9 |
|
09-Dec-2010 |
Brian Paul <brianp@vmware.com> |
glsl: add support for system values and GL_ARB_draw_instanced
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
9a1d063c6d679c2155f5eb80f1cb94368d36bf2c |
|
25-Nov-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Add an optimization pass to simplify discards. NOTE: This is a candidate for the 7.9 branch.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
63684a9ae7a66f68df1f2c68cd9358e5622122a3 |
|
19-Nov-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Combine many instruction lowering passes into one. This should save on the overhead of tree-walking and provide a convenient place to add more instruction lowering in the future. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
a75da2c0e85eb6b8279ec895c3f74cc4aefc0257 |
|
20-Oct-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Remove useless ir_shader enumeration value.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
f9995b30756140724f41daf963fa06167912be7f |
|
12-Oct-2010 |
Kristian Høgsberg <krh@bitplanet.net> |
Drop GLcontext typedef and use struct gl_context instead
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
d9671863eaae41ba28b6fe82e3e7d1dac12f514c |
|
06-Oct-2010 |
Dave Airlie <airlied@redhat.com> |
glsl: add support for shader stencil export This adds proper support for the GL_ARB_shader_stencil_export extension to the GLSL compiler. Thanks to Ian for pointing out where I need to add things.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
7f68cbdc4d9f602dc2619ac4a90283a4f057a8cb |
|
06-Oct-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl: Add parser support for GL_ARB_explicit_attrib_location layouts Only layout(location=#) is supported. Setting the index requires GLSL 1.30 and GL_ARB_blend_func_extended.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
e24d35a5b59ca1e75b69a32db6294787378a963f |
|
06-Oct-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl: Wrap ast_type_qualifier contents in a struct in a union This will ease adding non-bit fields in the near future.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
ca92ae2699c4aad21c0811b9a5562b9223816caf |
|
18-Sep-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Properly handle nested structure types. Fixes piglit test CorrectFull.frag.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
8f2214f4892acb994d13531d555196bd8f242dad |
|
13-Sep-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Add pass to remove redundant jumps
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
3361cbac2a883818efeb2b3e27405eeefce60f63 |
|
07-Sep-2010 |
Luca Barbieri <luca@luca-barbieri.com> |
glsl: add continue/break/return unification/elimination pass (v2) Changes in v2: - Base class renamed to ir_control_flow_visitor - Tried to comply with coding style This is a new pass that supersedes ir_if_return and "lowers" jumps to if/else structures. Currently it causes no regressions on softpipe and nv40, but I'm not sure whether the piglit glsl tests are thorough enough, so consider this experimental. It can be asked to: 1. Pull jumps out of ifs where possible 2. Remove all "continue"s, replacing them with an "execute flag" 3. Replace all "break" with a single conditional one at the end of the loop 4. Replace all "return"s with a single return at the end of the function, for the main function and/or other functions This gives several great benefits: 1. All functions can be inlined after this pass 2. nv40 and other pre-DX10 chips without "continue" can be supported 3. nv30 and other pre-DX10 chips with no control flow at all are better supported Note that for full effect we should also teach the unroller to unroll loops with a fixed maximum number of iterations but with the canonical conditional "break" that this pass will insert if asked to. Continues are lowered by adding a per-loop "execute flag", initialized to TRUE, that when cleared inhibits all execution until the end of the loop. Breaks are lowered to continues, plus setting a "break flag" that is checked at the end of the loop, and trigger the unique "break". Returns are lowered to breaks/continues, plus adding a "return flag" that causes loops to break again out of their enclosing loops until all the loops are exited: then the "execute flag" logic will ignore everything until the end of the function. Note that "continue" and "return" can also be implemented by adding a dummy loop and using break. However, this is bad for hardware with limited nesting depth, and prevents further optimization, and thus is not currently performed.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
e591c4625cae63660c5000fbab366e40fe154ab0 |
|
05-Sep-2010 |
Luca Barbieri <luca@luca-barbieri.com> |
glsl: add several EmitNo* options, and MaxUnrollIterations This increases the chance that GLSL programs will actually work. Note that continues and returns are not yet lowered, so linking will just fail if not supported. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
dc754586ca84741b4df5b72fd235c4134816854c |
|
08-Sep-2010 |
Chia-I Wu <olv@lunarg.com> |
glsl: Require a context in _mesa_glsl_parse_state. Create a dummy context in the standalone compiler and pass it to _mesa_glsl_parse_state.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
719caa403ecc3345b86708f8172600d80132d6cb |
|
16-Aug-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Accept language version 100 and make it the default on ES2.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
814c89abdbcd5b841b98746af921796df0362238 |
|
05-Sep-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Set default language version in mesa_glsl_parse_state constructor. This should make it easier to change the default version based on the API (say, version 1.00 for OpenGL ES). Also, synchronize the symbol table's version with the parse state's version just before doing AST-to-HIR. This way, it will be set when it matters, but the main initialization code doesn't have to care about the symbol table.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
de7c3fe31a7b88a5392dceee3b13b45ed78cdeae |
|
27-Aug-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Add module to perform simple loop unrolling
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
8df2dbf91ddfd0c1590e33015e85470b67e69319 |
|
27-Aug-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Perform initial bits of loop analysis during compilation
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
bfd7c9ac228c7ed8aec04c3b3aa33f40ee00b035 |
|
23-Aug-2010 |
Chia-I Wu <olv@lunarg.com> |
glsl: Include main/core.h. Make glsl include only main/core.h from core mesa.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
b83846475bac76268d75f53632faf8aad8cad02c |
|
19-Aug-2010 |
Eric Anholt <eric@anholt.net> |
glsl2: Free the shader compiler at dri screen destruction. Hooray, we can valgrind again without adding suppressions. This also adds an interface for use by an implementation of glReleaseShaderCompiler().
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
8f8cdbfba43550d0b8985fb087961864e4cd92b6 |
|
13-Aug-2010 |
Eric Anholt <eric@anholt.net> |
glsl2: Add a pass to strip out noop swizzles. With the glsl2-965 branch, the optimization of glsl-algebraic-rcp-rcp regressed due to noop swizzles hiding information from ir_algebraic. This cleans up those noop swizzles for us.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
2f4fe151681a6f6afe1d452eece6cf4144f44e49 |
|
10-Aug-2010 |
Eric Anholt <eric@anholt.net> |
glsl2: Move the common optimization passes to a helper function. These are passes that we expect all codegen to be happy with. The other lowering passes for Mesa IR are moved to the Mesa IR generator.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
4f397e1d641bf265b395f7dec062dab451fb5a54 |
|
06-Aug-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Enable all supported extensions in stand-alone compiler
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
ec9675ec533cc0c0c7b1c738280e9b9adf2591fb |
|
30-Jul-2010 |
Carl Worth <cworth@cworth.org> |
ast: Initialize location data in constructor of all ast_node objects. This prevents using uninitialized data in _msea_glsl_error in some cases, (including at least 6 piglit tests). Thanks to valgrind for pointing out the problem!
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
f50f06552eb1e4af27d6fe99c381eac6a0a4ea0f |
|
01-Jul-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Parser support for GL_ARB_fragment_coord_conventions
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
aa9f86ae8b3bb2172092ff9b50751677c509e6b4 |
|
23-Jul-2010 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl2: Fix standalone compiler to not crash horribly. ir_to_mesa was updated for the _mesa_glsl_parse_state constructor changes, but main.cpp was not.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
2462a536ea5c98867296905e3da127eba7c7bdff |
|
19-Jul-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Add a constructor for _mesa_glsl_parse_state Coming changes to the handling of built-in functions necessitate this.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
87a2ee8db6222006480bd0e0ac58b77795c5d951 |
|
19-Jul-2010 |
Eric Anholt <eric@anholt.net> |
glsl2: Fix warning from always-false assert not being known to not return.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
667f4e1940c4c4660e35dc9906672a476369660f |
|
01-Jul-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Conditionally allow optional extensions to be enabled The only optional extension currently supported by the compiler is GL_EXT_texture_array.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
3832706f81d7f5310882eda6d7ef0c3e39593b18 |
|
02-Jul-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Initialize ast_declarator_list::invariant in constructor
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|
29285882676388aacff123e8bdf025904abf8ea9 |
|
25-Jun-2010 |
Eric Anholt <eric@anholt.net> |
glsl2: Move the compiler to the subdirectory it will live in in Mesa.
/external/mesa3d/src/glsl/glsl_parser_extras.cpp
|