aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* dri_util: Fix prologue comment for driCreateConfigsIan Romanick2012-11-091-17/+5
| | | | | | | | The parameters and operation of this function changed, but I didn't bother to change the prologue comment. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* swrast: swrastFillInModes doesn't do 8-bit modes, so don't tryIan Romanick2012-11-091-3/+1
| | | | | | | | | | | Support for 8-bit modes was removed in commits 0398a26 and bda208a4. However, I didn't notice code in dri_init_screen that explicitly tries to create this modes. This is structurally different from other drivers (that only create modes that match the display color depth). Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56555 Cc: Vinson Lee <[email protected]>
* Revert "mesa: assert that key->fragprog_inputs_read value isn't too large"Brian Paul2012-11-091-2/+0
| | | | | | | | This reverts commit 0d61f879a1f2e6bb37368731a29d5267e1c25195. Assigning the FS inputs to the 12 bit field is fine since we don't care about the higher FS inputs. Maybe I'll revisit silencing the compiler warning another day.
* mesa: Don't glPopAttrib() GL_POINT_SPRITE_COORD_ORIGIN on < OpenGL-2.0Mario Kleiner2012-11-081-2/+5
| | | | | | | | | | | | | | | | | | | | The GL_POINT_BIT state attribute GL_POINT_SPRITE_COORD_ORIGIN is only supported on OpenGL-2.0 or later. Prevent glPopAttrib() from trying to restore it on OpenGL-1.4 implementations which support GL_ARB_POINT_SPRITE, as otherwise the sequence... glPushAttrib(GL_POINT_BIT); glPopAttrib(); throws an GL_INVALID_ENUM error in glPopAttrib(). See also commit f778174ea1e431a7113f12c12beb4aba9e825a9f NOTE: This is a candidate for the 9.0 branch. Signed-off-by: Mario Kleiner <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: Fix glGetVertexAttribI[u]iv now that we have real integer attribs.Kenneth Graunke2012-11-081-12/+4
| | | | | | | | | | | | | | | | Since cf438f5375e242, we store actual integers for the attribute data. We just need to reinterpret the GLfloat array as a GLint/GLuint array so we can read the proper data. Fixes oglconform's glsl-vertex-attrib/basic.VertexAttribI[1234][u]i subtests (after fixing an unrelated bug in those test cases). v2: Use the COPY_4V macro to be concise. NOTE: This is a candidate for the stable branches. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Marek Olšák <[email protected]> [v1]
* mesa: Fix typo in glDeleteQueriesARB debug message.Kenneth Graunke2012-11-081-1/+1
| | | | "Deleete" all the extra letters!
* st/mesa: add support for ARB_texture_cube_map_array (v2)Dave Airlie2012-11-095-23/+64
| | | | | | | | | | | This adds mesa state tracker support for the new extension, along with glsl->tgsi conversion to use the new opcodes where appropriate. v2: fix assert found running textureSize tests. Reviewed-by: Brian Paul <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: arb_texture_cube_map_array: fix attrib push/popDave Airlie2012-11-091-2/+4
| | | | | | fdo9833 piglit test caught this. Signed-off-by: Dave Airlie <[email protected]>
* mesa: add get support for TEXTURE_BINDING_CUBE_MAP_ARRAY_ARBDave Airlie2012-11-092-0/+5
| | | | | | Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: add fbo/texture support for ARB_texture_cube_map_array (v2)Dave Airlie2012-11-0910-7/+107
| | | | | | | | | | | | | | | This adds the mesa core + texture + fbo support for the texture cube map array extension. v2: add comment to _mesa_num_tex_faces related to cube map arrays (Brian) drop wrong comment cut-n-paste (Brian) fix / 6 maximum check issue (Kenneth) coalsece some array case statements (Kenneth) Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Brian Paul <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: add ARB_texture_cube_map_array extension bitsDave Airlie2012-11-092-0/+2
| | | | | | | | This just adds the bit + extension name. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Brian Paul <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* i965: Fix slow leak of brw->wm.compile_data->storeEric Anholt2012-11-083-20/+6
| | | | | | | | We were successfully freeing our compile data at context destroy, but until then we were allocating a new store every compile without freeing it. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56019 Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Add support for global copy propagation.Eric Anholt2012-11-082-20/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It is common for complicated shaders, particularly code-generated ones, to have a big array of uniforms or attributes, and a prologue in the shader that dereferences from the big array to more informatively-named local variables. Then there will be some small control flow operation (like a ? : statement), and then use of those informatively-named variables. We were emitting extra MOVs in these cases, because copy propagation couldn't reach across control flow. Instead, implement dataflow analysis on the output of the first copy propagation pass and re-run it to propagate those extra MOVs out. On one future Steam release, reduces VS+FS instruction count from 42837 to 41437. No statistically significant performance difference (n=48), though, at least at the low resolution I'm running it at. shader-db results: total instructions in shared programs: 722170 -> 702545 (-2.72%) instructions in affected programs: 260618 -> 240993 (-7.53%) Some shaders do get hurt by up to 2 instructions, because a choice to copy propagate instead of coalesce or something like that results in a dead write sticking around. Given that we already have instances of those instructions in the affected programs (particularly unigine), we should just improve dead code elimination to fix the problem.
* glsl_to_tgsi: fix dst register for texturing fetches.Dave Airlie2012-11-091-1/+1
| | | | | | | | | | | | | | I've no idea why there isn't a piglit that triggers this behaviour, but while enabling TBOs for softpipe and r600g, I noticed all the integer tests failed. I tracked it back to the TXF returning a float when it should be returning an int. This fixed it and I haven't seen any regressions in a full piglit run on softpipe. http://bugs.freedesktop.org/55010 NOTE: This is a candidate for the 9.0 branch. Signed-off-by: Dave Airlie <[email protected]>
* i965: Fix assertion in brw_alu3.Vinson Lee2012-11-071-1/+1
| | | | | | | Fixes side effect in assertion defect reported by Coverity. Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Remove PROG_EMIT_VERTEX and PROG_END_PRIMITIVE opcodes.Kenneth Graunke2012-11-074-14/+0
| | | | | | | | These were only used for geometry shader support back in the days before the new GLSL compiler. Future geometry shader support will not use these. Reviewed-by: Ian Romanick <[email protected]>
* scons: Build src/mesa/main/es1_conversion.c for all builds.Vinson Lee2012-11-061-1/+2
| | | | Signed-off-by: Vinson Lee <[email protected]>
* dispatch: Delete unused init_dispatch functions.Paul Berry2012-11-0632-431/+0
| | | | | | | | | | The new code-generated version of _mesa_create_exec_table() populates the entire dispatch table (except for dynamic functions) by itself; it no longer calls separate functions to initialize parts of the dispatch table. This patch removes those no-longer-needed functions. Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* dispatch: Code generate api_exec.c.Paul Berry2012-11-065-934/+17
| | | | | | | | | This patch adjusts makefiles to cause src/mesa/main/api_exec.c to be generated using src/mapi/glapi/gen/gl_genexec.py. There should be no functional change. Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* dispatch: Make all API functions non-static.Paul Berry2012-11-0634-538/+1304
| | | | | | | | | | | | | | | | | Some of the functions that we store in the dispatch table are declared as non-static in their .c files and are inserted into the dispatch table directly by _mesa_create_exec_table(). Other functions are declared as static, and are inserted into the dispatch table by a dedicated function that lives in the same .c file (e.g. _mesa_loopback_init_api_table() in api_loopback.c). This patch makes all of these functions non-static, and creates appropriate prototypes for them, so that in future patches we can populate the entire dispatch table using a single code-generated function. Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* dispatch: Remove a few FEATURE_ES1 conditionals.Paul Berry2012-11-065-18/+1
| | | | | | | | This allows the GLES1.1 dispatch sanity test to be run on all builds, even builds that do not include GLES1 support. Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* mesa: assert that key->fragprog_inputs_read value isn't too largeBrian Paul2012-11-061-0/+2
| | | | | | | fragprog_inputs_read is a 12-bit bitfield so check the assigned value. MSVC warns on the assignment. Not easy to fix but let's do a sanity check. Reviewed-by: Jose Fonseca <[email protected]>
* mesa: fix MSVC signed/unsigned warnings in context.cBrian Paul2012-11-061-2/+2
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* mesa: fix MSVC signed/unsigned warnings in transformfeedback.cBrian Paul2012-11-061-2/+2
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* swrast: fix MSVC signed/unsigned warningsBrian Paul2012-11-061-2/+2
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* tnl: fix MSVC signed/unsigned warningsBrian Paul2012-11-061-1/+2
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* mesa: silence MSVC signed/unsigned warning in texgetmage.cBrian Paul2012-11-061-1/+1
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* mesa: silence MSVC signed/unsigned warning in texstorage.cBrian Paul2012-11-061-1/+1
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* vbo: use GLuint for numInstances to silence MSVC warningsBrian Paul2012-11-062-2/+2
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* mesa: fix signed/unsigned MSVC warnings in fbobject.cBrian Paul2012-11-061-2/+3
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* mesa: s/GLint/GLuint/ in matrix.c to silence MSVC warningsBrian Paul2012-11-061-1/+1
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* mesa: s/int/GLuint/ in get.c to silence MSVC warningsBrian Paul2012-11-061-1/+1
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* mesa: fix assorted MSVC conversion warnings in format_pack.cBrian Paul2012-11-061-10/+10
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* st/mesa: change glsl_to_tgsi_visitor from class to structBrian Paul2012-11-061-1/+1
| | | | | | To match the declaration in the .h file and silence an MSVC warning. Reviewed-by: Jose Fonseca <[email protected]>
* st/mesa: add int cast to silence warningBrian Paul2012-11-061-1/+1
| | | | | | MSVC warns that negating an unsigned value yields an unsigned value. Reviewed-by: Jose Fonseca <[email protected]>
* vbo: fix glVertexAttribI* functionsMarek Olšák2012-11-0610-63/+179
| | | | | | | | | | | | | | | | | | | | | | The functions were broken, because they converted ints to floats. Now we can finally advertise OpenGL 3.0. ;) In this commit, the vbo module also tracks the type for each attrib in addition to the size. It can be one of FLOAT, INT, UNSIGNED_INT. The little ugliness is the vertex attribs are declared as floats even though there may be integer values. The code just copies integer values into them without any conversion. This implementation passes the glVertexAttribI piglit test which I am going to commit in piglit soon. The test covers vertex arrays, immediate mode and display lists. NOTE: This is a candidate for the stable branches. Reviewed-by: Brian Paul <[email protected]> v2: cosmetic changes as suggested by Brian
* meta: Remove redundant code in _mesa_meta_GenerateMipmapAnuj Phogat2012-11-051-61/+4
| | | | | | | | | Integer textures generate invalid operation in glGenerateMipmap. So, the code related to integer textures is now redundant. Note: This is a candidate for stable branches. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Generate invalid operation in glGenerateMipMap for integer texturesAnuj Phogat2012-11-051-0/+9
| | | | | | | | | | | | | | | Khronos has reached a conclusion and disallowed following texture formats in glGenerateMipMap(): (a) ASTC textures (b) integer internal formats (e.g., RGBA8UI, RG16I) (c) textures with stencil formats (e.g., STENCIL_INDEX8) (d) textures with packed depth/stencil formats (e.g, DEPTH24_STENCIL8) https://cvs.khronos.org/bugzilla/show_bug.cgi?id=9471 Note: This is a candidate for stable branches. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Use "non-gen name" more consistently as an error message in GL core.Eric Anholt2012-11-042-2/+2
| | | | | | | | | I used this to help verify that my test was actually testing the paths I wanted to. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: Fix core GL genned-name handling for glBeginQuery().Eric Anholt2012-11-041-5/+11
| | | | | | | | | Fixes piglit gl-3.1/genned-names. NOTE: This is a candidate for the 9.0 branch. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: Fix the core GL genned-name handling for glBindBufferBase()/Range().Eric Anholt2012-11-041-8/+14
| | | | | | | | | | | This is part of fixing gl-3.1/genned-names. v2: Fix a missing return value. NOTE: This is a candidate for the 9.0 branch. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* i965: Fix oversized initial allocation of the state cache table pointers.Vandrus Zoltán2012-11-041-1/+1
| | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55030
* i965: Force border color A to 1 when it's not present in the GL format.Eric Anholt2012-11-041-0/+7
| | | | | | | | | | It's usually forced to 1 by the surface format, but sometimes we actually have alpha present because it's the only format available. Fixes piglit texwrap bordercolor tests for OpenGL 1.1, GL_EXT_texture_sRGB and GL_ARB_texture_float. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Fix uploading user vertex arrays with basevertex set.Eric Anholt2012-11-043-2/+7
| | | | | | | | | | | If the index buffer is full of values like "0 1 2 3", but basevertex is 4, we need to upload at least vertex data for elements 4 5 6 7. Whether we also upload 0 1 2 3 is a question of whether there are VBOs present or not -- see the code setting start_vertex_bias in brw_draw_upload.c. Fixes piglit draw-elements*base-vertex user_varrays Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Set dirty state for brw_draw_upload.c when num_instances changes.Eric Anholt2012-11-041-1/+4
| | | | | | | | Otherwise, if we had a set of prims passed in with a num_instances varying between them, we wouldn't upload enough (or too much!) from user vertex arrays. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Remove the vbo_rebase_prims() path.Eric Anholt2012-11-041-15/+6
| | | | | | | | The brw_draw_upload.c start_vertex_bias code has support for doing the rebase without rewriting the index buffer by applying a basevertex. It looks like vbo_rebase_prims() is not equipped to handle basevertex. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Fix a comment in copy propagation.Eric Anholt2012-11-041-1/+3
| | | | | | | We haven't been only tracking raw GRF-GRF moves since the constant propagation merge, and also the extension for source modifiers and uniforms. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Allow copy-propagation on pull constant load values.Eric Anholt2012-11-041-3/+4
| | | | | | | | | | | | Given that we handle similarly-regioned GRFs registers for our copy propagation from our UNIFORM file, there's no reason not to allow it. The shader-db impact is negligible -- +90 instructions total, 2 shaders helped and 7 hurt (slightly increased register pressure increased spilling), but this is to prevent regression in other shaders when fixing copy_propagation to reduce register pressure in the shaders that are hurt here. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Do dead code elimination just after copy propagation.Eric Anholt2012-11-041-1/+1
| | | | | | | | | | | | | | | | If we put the register coalescing in between the two, then we end up with code sequences involving dead writes that the dead code elimination doesn't know how to remove. In place of making dead code elimination smart (which we should do, too), make it less important for the moment. shader-db results: total instructions in shared programs: 722240 -> 721275 (-0.13%) instructions in affected programs: 50573 -> 49608 (-1.91%) (no shaders regressed). Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Compact the virtual GRF arrays.Kenneth Graunke2012-11-032-0/+61
| | | | | | | | | | | | | | During code generation, we create tons of temporary variables, many of which get immediately killed and are never used. Later optimization and analysis passes, such as compute_live_intervals, loop over all the virtual GRFs. By compacting them, we can save a lot of overhead. Reduces compilation time in L4D2's largest fragment shader from 10.2 seconds to 5.2 seconds (50%). Drops compute_live_variables() from 10-12% of another game's startup time to 8%. Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Kenneth Graunke <[email protected]>