summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* dispatch: stop generating separate GLES1 API code.Paul Berry2012-11-0110-4109/+4
| | | | | | | | | | This patch removes the generated files api_exec_es1.c, api_exec_es1_dispatch.h, and api_exec_es1_remap_helper.h (and the source files and build rules used to generate them), since they are no longer used. GLES1 now uses the same dispatch table layout as all the other APIs. Reviewed-by: Kenneth Graunke <[email protected]>
* dispatch: stop using _mesa_create_exec_table_es1() for GLES1.Paul Berry2012-11-012-29/+18
| | | | | | | | | | | | | | | | | | | | This patch modifies context creation code for GLES1 to use _mesa_create_exec_table() (which is used for all other APIs) instead of the GLES1-specific _mesa_create_exec_table_es1(). There is a slight change in functionality. As a result of a mistake in the code generation of _mesa_create_exec_table_es1(), it does not include glFlushMappedBufferRangeEXT or glMapBufferRangeEXT (this is because when support for those two functions was added in commit 762d9ac, src/mesa/main/APIspec.xml wasn't updated). With this patch, glFlushMappedBufferRangeEXT and glMapBufferRangeEXT are properly included in the dispatch table. Accordingly, dispatch_sanity.cpp is modified to expect these two functions to be present. Reviewed-by: Kenneth Graunke <[email protected]> v2: Leave GLES1.1 dispatch sanity test disabled when not building GLES1 support.
* dispatch: GLES1 fixes for _mesa_create_exec_table().Paul Berry2012-11-018-164/+291
| | | | | | | | | | | | | | | | | Currently, _mesa_create_exec_table() (in api_exec.c) is used for all APIs except GLES1. In GLES1, _mesa_create_exec_table_es1() (a code generated function) is used instead. In principle, this shouldn't be necessary. It should be possible for api_exec.c to contain the logic for populating the dispatch table for all API's. This patch paves the way for using _mesa_create_exec_table() instead of _mesa_create_exec_table_es1(), by making _mesa_create_exec_table() (and the functions it calls) expose the correct subset of desktop GL functions for GLES1. Reviewed-by: Kenneth Graunke <[email protected]>
* dispatch: Make a header to go along with querymatrix.c.Paul Berry2012-11-012-9/+43
| | | | | | | | | | | | | This patch creates a header querymatrix.h, to allow functions defined in querymatrix.c to be used from other .c files. It also switches from the nonstandard GL_APIENTRY to GLAPIENTRY. Reviewed-by: Kenneth Graunke <[email protected]> v2: Don't declare _mesa_Get{Integer,Float}v in querymatrix.c. Instead, just include main/get.h. Reviewed-by: Chad Versace <[email protected]>
* dispatch: Add standard boilerplate and GL_APIENTRY to es1_conversion.h.Paul Berry2012-11-012-4/+31
| | | | | | | | | | | | | This patch adds the usual boilerplate (copyright notice and guards against redundant inclusion) to es1_conversion.h. It also moves the definition of GL_APIENTRY from es1_conversion.c. This allows es1_conversion.h to be safely included from other .c files. Reviewed-by: Kenneth Graunke <[email protected]> v2: Use copyright notice from src/mesa/main/es_generator.py (the script that used to generate this file).
* dispatch: Include GLES1-only functions in dispatch table.Paul Berry2012-11-013-23/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously dispatch table-related code was generated from gl_API.xml, so it did not include slots for GLES1-only functions (such as those taking fixed-point arguments). This patch generates dispatch table-related code from gl_and_es_API.xml, so that GLES1-only functions are included. This paves the way for future patches that will unify the GLES1 dispatch table with the dispatch tables for the other APIs. The following generated files are affected: - glapi_x86.S - glapi_x86-64.S - glapi_sparc.S - glprocs.h - glapitemp.h - glapitable.h - glapi_gentable.c - dispatch.h - remap_helper.h Since this change affects makefiles, a full rebuild is required. Reviewed-by: Kenneth Graunke <[email protected]> v2: Adjust dependencies to ensure that generated files will be rebuilt whenever any ES-related XML source files are changed. Reviewed-by: Chad Versace <[email protected]>
* dispatch: properly handle parameter name mismatches in glapitemp.h.Paul Berry2012-11-012-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, when code-generating aliased functions in glapitemp.h, we weren't consistent about which function alias we used to obtain the parameter names, with the risk that we would generate incorrect code like this: KEYWORD1 void KEYWORD2 NAME(Foo)(GLint x) { (void) x; DISPATCH(Foo, (x), (F, "glFoo(%d);\n", x)); } KEYWORD1 void KEYWORD2 NAME(FooEXT)(GLint y) { (void) x; DISPATCH(Foo, (x), (F, "glFooEXT(%d);\n", x)); } At the moment there are no aliased functions with mismatched parameter names, so this isn't the problem. But when we introduce GLES1 functions into the dispatch table, there will be (MapBufferRange/MapBufferRangeEXT). This patch paves the way for that by fixing the code generation script to handle the mismatch correctly. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* dispatch: Include glheader.h in dispatch-related files.Paul Berry2012-11-014-4/+4
| | | | | | | | | This ensures that GLES1-only typedefs are available in these files. In a future patch, this will allow us to expand the dispatch table to include GLES1-only functions. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* dispatch: Update check_table.cpp to reflect recent aliasing changes.Paul Berry2012-11-011-2/+0
| | | | | | | | | | | | | | | | In commits bad96f6 and e7dd2e5 I added the following aliases: - ClampColor -> ClampColorARB - VertexAttribDivisor -> VertexAttribDivisorARB But I neglected to update check_table.cpp, causing "make check" to fail for non-shared-glapi builds. This patch removes the functions that are now aliased from check_table.cpp, so that "make check" works correctly again. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* i965/gen4: Fix assertion failures in depthstencil piglit tests.Eric Anholt2012-11-011-4/+5
| | | | | | Don't forget to set depth_mt even if !hiz_mt. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Add "alpha to coverage" to performance debug recompile messages.Kenneth Graunke2012-10-311-0/+1
| | | | | | | This was missing and got labeled "Something else". Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Don't replicate data for zero-stride arrays when copying to VBOs.Kenneth Graunke2012-10-311-7/+6
| | | | | | | | | | | | | | When copy_array_to_vbo_array encountered an array with src_stride == 0 and dst_stride != 0, we would replicate out the single element to the whole size (max - min + 1). This is unnecessary: we can simply upload one copy and set the buffer's stride to 0. Decreases vertex upload overhead in an upcoming Steam for Linux title. Prior to this patch, copy_array_to_vbo_array appeared very high in the profile (Eric quoted 20%). After the patch, it disappeared completely. Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Kenneth Graunke <[email protected]>
* i965: Don't bother trying to extend the current vertex buffers.Kenneth Graunke2012-10-313-42/+1
| | | | | | | | | | | | | | | | | | | | This essentially reverts the following: commit c625aa19cb53ed27f91bfd16fea6ea727e9a5bbd Author: Chris Wilson <[email protected]> Date: Fri Feb 18 10:37:43 2011 +0000 intel: extend current vertex buffers While working on optimizing an upcoming Steam title, I broke this code. Eric expressed his doubts about this optimization, and noted that the original commit offered no performance data. I ran before and after benchmarks on Xonotic and Citybench, and found that this code made no difference. So, remove it to reduce complexity and make future work simpler. Reviewed-by: Eric Anholt <[email protected]>
* r600g: re-enable handling of DISCARD_RANGE, improving performanceMarek Olšák2012-11-011-2/+0
| | | | | | It seems to work for me now. Even the graphics corruption is gone. This also boosts performance in Reaction Quake.
* r600g: fix abysmal performance in Reaction QuakeMarek Olšák2012-11-012-21/+24
| | | | | | | | | | | | | The problem was we set VRAM|GTT for relocations of STATIC resources. Setting just VRAM increases the framerate 4 times on my machine. I rewrote the switch statement and adjusted the domains for window framebuffers too. NOTE: This is a candidate for the stable branches. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Jerome Glisse <[email protected]>
* gallium/u_vbuf: document how it worksMarek Olšák2012-11-012-3/+63
|
* gallium/u_vbuf: optimize looping over the list of buffers to uploadMarek Olšák2012-11-011-9/+12
|
* gallium/u_vbuf: skip processing of buffers unused by the vertex element stateMarek Olšák2012-11-011-15/+24
|
* swrast: remove explicit size from texfetch_funcs arrayBrian Paul2012-10-311-1/+1
| | | | | | | | By removing the array size, the static assertion to check for missing elements can do its job properly. This will catch cases where a new Mesa format is added but the swrast texfetch code isn't updated. Reviewed-by: Kenneth Graunke <[email protected]>
* llvmpipe: Obey back writemask.José Fonseca2012-10-311-2/+8
| | | | | | | | Tested with a modified glean tstencil2 test. NOTE: This is a candidate for stable branches. Reviewed-by: Brian Paul <[email protected]>
* r600g: avoid shader needing too many gpr to lockup the gpu v2Jerome Glisse2012-10-313-34/+62
| | | | | | | | | | | | | | On r6xx/r7xx shader resource management need to make sure that the shader does not goes over the gpr register limit. Each specific asic has a maxmimum register that can be split btw shader stage. For each stage the shader must not use more register than the limit programmed. v2: Print an error message when discarding draw. Don't add another boolean to context structure, but rather propagate the discard boolean through the call chain. Signed-off-by: Jerome Glisse <[email protected]>
* draw: fix assertion failure in draw_emit_vertex_attrMarek Olšák2012-10-311-2/+3
| | | | | | | | | | | This is a regression since b3921e1f53833420e0a0fd581f7417. The array stores VS outputs, not FS inputs. Now llvmpipe can do 32 varyings too. NOTE: This is a candidate for the stable branches. Reviewed-by: Brian Paul <[email protected]>
* r600g: use SQ_VTX_SEMANTIC_CLEAR to clear the semantic registersMarek Olšák2012-10-314-99/+11
| | | | Reviewed-by: Alex Deucher <[email protected]>
* mesa: remove NV_read_buffer extension enable flagMarek Olšák2012-10-312-2/+1
| | | | | | It's been enabled by default, so the flag isn't really useful. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: remove SGIS_texture_lod extension enable flagMarek Olšák2012-10-312-20/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove NV_texgen_reflection extension enable flagMarek Olšák2012-10-313-5/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove NV_light_max_exponent extension enable flagMarek Olšák2012-10-314-7/+3
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove IBM_rasterpos_clip extension enable flagMarek Olšák2012-10-315-7/+2
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove IBM_multimode_draw_arrays extension enable flagMarek Olšák2012-10-313-5/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove APPLE_packed_pixels extension enable flagMarek Olšák2012-10-312-3/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: don't always enable OES_standard_derivativesMarek Olšák2012-10-314-2/+5
| | | | | | | | For Intel, expose it only if gen >= 4. For Gallium, expose it only if PIPE_CAP_SM3 is advertised. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: move EXT_texture3D enabling to _mesa_init_extensionsMarek Olšák2012-10-311-2/+1
|
* mesa: remove EXT_separate_specular_color extension enable flagMarek Olšák2012-10-312-3/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove EXT_rescale_normal extension enable flagMarek Olšák2012-10-312-3/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove EXT_packed_pixels extension enable flagMarek Olšák2012-10-312-3/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove EXT_draw_range_elements extension enable flagMarek Olšák2012-10-312-3/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove EXT_compiled_vertex_array extension enable flagMarek Olšák2012-10-315-7/+3
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove ARB_window_pos extension enable flagMarek Olšák2012-10-315-9/+2
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove ARB_transpose_matrix extension enable flagMarek Olšák2012-10-313-5/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove ARB_copy_buffer extension enable flagMarek Olšák2012-10-316-9/+3
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* gallium: expose ARB_map_buffer_alignment on RadeonMarek Olšák2012-10-3114-3/+32
| | | | | | | | Reviewed-by: Brian Paul <[email protected]> v2: update relnotes-9.1 v3: use align_malloc and align_free for malloced buffers in r300g v4: document the new CAP in the docs
* mesa: implement ARB_map_buffer_alignmentMarek Olšák2012-10-315-1/+16
| | | | Reviewed-by: Brian Paul <[email protected]>
* st/mesa: don't use _NEW_PROGRAM where ST_NEW_xxx_PROGRAM is sufficientMarek Olšák2012-10-313-6/+6
| | | | Reviewed-by: Brian Paul <[email protected]>
* r600g: use better sample positions for 8x MSAAMarek Olšák2012-10-312-12/+12
| | | | | Taken from the intel driver. The sample positions are actually a solution to the 8 queens puzzle. It gives more accurate and smoother AA.
* gallium: add start_slot parameter to set_vertex_buffersMarek Olšák2012-10-3178-435/+612
| | | | | | | | | | | | | | | | | | | | | This allows updating only a subrange of buffer bindings. set_vertex_buffers(pipe, start_slot, count, NULL) unbinds buffers in that range. Binding NULL resources unbinds buffers too (both buffer and user_buffer must be NULL). The meta ops are adapted to only save, change, and restore the single slot they use. The cso_context can save and restore only one vertex buffer slot. The clients can query which one it is using cso_get_aux_vertex_buffer_slot. It's currently set to 0. (the Draw module breaks if it's set to non-zero) It should decrease the CPU overhead when using a lot of meta ops, but the drivers must be able to treat each vertex buffer slot as a separate state (only r600g does so at the moment). I can imagine this also being useful for optimizing some OpenGL use cases. Reviewed-by: Brian Paul <[email protected]>
* st/xorg: Remove superfluous miInitializeBackingStore() callMarvin Schmidt2012-10-301-1/+0
| | | | | | | | | It was defined as an empty function since Nov 2010 and was ultimately removed completely. See xserver commit 1cb0261 Signed-off-by: Michel Dänzer <[email protected]>
* xlib: Do not undefine _R, _G, and _B.Vinson Lee2012-10-291-3/+0
| | | | | | | | Fixes build error on Cygwin and Solaris. _R, _G, and _B are used in ctype.h on those platforms. Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: remove array size so the static assert can workBrian Paul2012-10-291-1/+1
| | | | | | | | With the explit NUM_TEXTURE_TARGETS array size, the assertion that Elements(targets) == NUM_TEXTURE_TARGETS would pass even if elements were missing. Reviewed-by: Eric Anholt <[email protected]>
* mesa: use GLuint for more gl_constants fieldsBrian Paul2012-10-291-6/+6
| | | | | | To silence assorted MSVC warnings. Reviewed-by: Jose Fonseca <[email protected]>
* vbo: silence MSVC double/float conversion warningsBrian Paul2012-10-291-2/+2
| | | | Reviewed-by: Jose Fonseca <[email protected]>