mesa-7.11 branch commit 0f7325b89038937bd428f7c89ed9859189a0ab0b Author: Kenneth Graunke Date: Mon Dec 27 03:21:23 2010 -0800 i965: Emit texel offsets in sampler messages. doom.x86: nv04_2d.c:252: nv04_region_assert: Assertion `end <= rgn->bo->size' failed. celestia 1.6.1 - good (all modes) Q3 - good - timedemo 001 1346 frames, 42.6 seconds: 31.6 fps ---- ommit 5722286be21a2f766a5f44e19e8005023d26b959 Author: Marek Olšák Date: Tue Apr 19 12:28:51 2011 +0200 configure.ac: rename --enable-gallium-radeon to --enable-gallium-r300 Also fix up the help string for both r300 and r600. celestia 1.6.1 - basic and multitexture pathes broken Q3 -timedemo2 - BROKEN (lock up) ---- commit 8987109c27899273bffca941c48b466218ba56ea Author: José Fonseca Date: Thu Mar 3 15:28:36 2011 +0000 scons: Always load lex/yacc tool. celestia 1.6.1 - all broken Q3 - timedemo 002 GOOD! ---- commit ff2950dd690a2ed9ee96823030ba9edf073c8229 Author: Brian Paul Date: Thu Mar 24 08:34:19 2011 -0600 radeon: reorder #includes to silence warnings celestia 1.6.1 - basic and multitexture broken Q3 -timedemo2 - BROKEN (lock up) ---- commit a4a5d7e0dd0fb8888ab939e209b229e0f78139f4 Author: Brian Paul Date: Fri Mar 11 09:25:21 2011 -0700 vega: remove unused pipe var celestia 1.6.1 - basic and multitexture broken Q3 - timedemo 002 GOOD - 1399 frames, 44.5 seconds: 31.5 fps ----- commit 202c345c7cf5074c0d0be208067c072c2f53535a Author: José Fonseca Date: Mon Mar 14 19:58:22 2011 +0000 autoconf/make: Don't specify individual llvm libraries. celestia 1.6.1 - basic and multitexture broken Q3 timedemo 002 - GOOD! ---- commit 5fc5820cbc0faf57a48154466b4792294841a690 Author: José Fonseca Date: Wed Mar 16 09:15:30 2011 +0000 mesa: Use typecast in BITFIELD64_BIT macro. Unsigned long is 32bit on several platforms (e.g., Windows), yielding 1UL << 32 to be zero. Note that BITFIELD64_BIT result is often assigned to variables of type GLbitfield, instead of GLbitfield64. That's probably wrong and should be addressed in a later change. celestia 1.6.1 - basic and multitexture broken Q3 timedemo 002 GOOD! ---- commit 630d925666766f1c5c9ee2fc31ed307c987d76ff Author: Brian Paul Date: Sat Mar 19 14:17:40 2011 -0600 mesa: rename functions to follow Mesa conventions celestia 1.6.1 - basic and multitexture broken Q3 timedemo demo002 - BROKEN ---- commit dfda559b9867d70b70b99c0f3e751fd5930bdc01 Author: Brian Paul Date: Wed Mar 16 21:13:31 2011 -0600 mesa: clean up the glBindTexture early out code a bit celestia 1.6.1 - basic and multitexture broken Q3 timedemo demo002 - BROKEN ---- commit b47d5084127ce4104015212e06d333f161a6691f Author: José Fonseca Date: Wed Mar 16 15:46:21 2011 +0000 svga: Leave any_user_vertex_buffers flag alone. It is pointless to change, now that we don't replace user vertex buffer with uploaded copy, per commit 52e598d200108ab9cfc9c9d828bbebdc576e9703. celestia 1.6.1 - basic and multitexture broken Q3 timedemo demo002 - BROKEN ----- commit e08a3d674ad577fca24b69dd02b3f97b2e6b68d2 Author: José Fonseca Date: Wed Mar 16 11:17:48 2011 +0000 svga: Use transfer information on buffer transfers. Should prevent the assert failure svga_buffer_flush_mapped_range: Assertion `sbuf->map.writing' failed. on nested transfers. celestia 1.6.1 - basic and multitexture broken Q3 timedemo 002 GOOD! ext: GL_VENDOR: nouveau GL_RENDERER: Gallium 0.4 on NV43 GL_VERSION: 2.1 Mesa 7.11-devel GL_EXTENSIONS: GL_ARB_copy_buffer GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query2 GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_sync GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_transpose_matrix GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_buffer_object GL_ARB_vertex_pr GL_MAX_TEXTURE_SIZE: 4096 GL_MAX_ACTIVE_TEXTURES_ARB: 8 ---- commit 74651f5738032466fceede8b8f0c3ce29a770551 Author: José Fonseca Date: Wed Mar 16 15:43:00 2011 +0000 svga: Hardcode SVGA_COMBINE_USERBUFFERS to 1. The code no longer supports otherwise -- it relies on buffers being uploaded via u_upload_mgr -- so make this clear. Also, there's no need to flush after draws from user buffers, given all user content should have been copied by then. Q3 timedemo demo002 - BROKEN ---- commit 8767fe2437094f33db140a6b92f25116de4fc371 Author: José Fonseca Date: Thu Mar 10 14:39:08 2011 +0000 mesa: Sort extensions in extension string by year. The years were obtained automatically by scraping the first year from the spec text file. They are approximate. exts: GL_VENDOR: nouveau GL_RENDERER: Gallium 0.4 on NV43 GL_VERSION: 2.1 Mesa 7.11-devel GL_EXTENSIONS: GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_logic_op GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_multitexture GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env GL_MAX_TEXTURE_SIZE: 4096 GL_MAX_ACTIVE_TEXTURES_ARB: 8 ====== Result (for Q3, probably only exposes bug): guest@slax:~/botva/src/src/mesa$ git bisect bad 8767fe2437094f33db140a6b92f25116de4fc371 is the first bad commit commit 8767fe2437094f33db140a6b92f25116de4fc371 Author: José Fonseca Date: Thu Mar 10 14:39:08 2011 +0000 mesa: Sort extensions in extension string by year. The years were obtained automatically by scraping the first year from the spec text file. They are approximate. :040000 040000 9069c4ecc6dfce431abc5dad70958deaddd4191c e3b9eabaa0332a28fb103238b8915171e31a92b6 M src ===== commit 0f7325b89038937bd428f7c89ed9859189a0ab0b Author: Kenneth Graunke Date: Mon Dec 27 03:21:23 2010 -0800 i965: Emit texel offsets in sampler messages. vertexrate (1264 drawArrays) - good! glDrawElements: 10.8 million verts/sec ---- commit fbd681f1a03f6ad62432107dc94e02674f6de7bf Author: Jakob Bornecrantz Date: Tue Feb 22 00:20:39 2011 +0000 i915g: Use dump function in sw winsys vertexrate lock up BAD! ----- commit 1f5b67416810f7331fe71db0f767418473083701 Author: Dave Airlie Date: Mon Feb 14 07:52:26 2011 +1000 egl_dri2: add nouveau support. but really wtf? all these PCI IDs need to be ripped out of here, its totally unscalable and the drivers already have this info so could export it some better way. tested by Darxus on #wayland. glDrawElements: 13.0 million verts/sec GOOD! ---- commit e0481cac7d57757d75a39763a1dd36b915979bb4 Author: Jakob Bornecrantz Date: Thu Feb 17 17:16:14 2011 +0000 svga: Disable surface cache for textures Signed-off-by: Jakob Bornecrantz vertexrate BAD! (lock up) ---- commit fc5ab1b19780ef97c5e7f6257a2d91121503bd53 Author: Brian Paul Date: Wed Feb 16 07:08:47 2011 -0700 mesa: use gl_format type instead of GLuint vertexrate bad (lock up)! ---- commit 56029ce52bafbc51b5b6660383767257b7770cd7 Author: Marek Olšák Date: Tue Feb 15 01:17:29 2011 +0100 r300g: inline some of the pipe_buffer_map/unmap calls celestia 1.6.1 - all broken! vertexrate - BAD (lock up)! ----- commit 9e96ea0652dda64f8eb311d7dfc9c50519ad02f0 Author: Alex Deucher Date: Mon Feb 14 13:07:29 2011 -0500 r600g: add alignment cases for linear aligned Matches the drm and ddx. Signed-off-by: Alex Deucher glDrawElements: 12.1 million verts/sec - GOOD! ---- commit 588fa884d212eba5ffbc69fda75db37d7c77214c Author: Marek Olšák Date: Wed Feb 9 01:10:11 2011 +0100 gallium: notify drivers about possible changes in user buffer contents Also implement the redefine_user_buffer hook in the drivers. vertexrate - BAD (lock up)! ----- commit cfaf217135d8a8e903b3fbf380f18170df018f0c Author: Marek Olšák Date: Sat Feb 12 03:57:19 2011 +0100 vbo: bind arrays only when necessary We don't need to call bind_arrays in the vbo module if the states which the function depends on are not dirty. glDrawElements: 11.8 million verts/sec - GOOD! ---- commit cdca3c58aa2d9549f5188910e2a77b438516714f Author: Marek Olšák Date: Mon Jan 10 05:41:47 2011 +0100 gallium: remove pipe_vertex_buffer::max_index This is redundant to pipe_draw_info::max_index and doesn't really fit in the optimizations I plan. vertexrate GOOD! glDrawElements: 10.6 million verts/sec ---- commit 2a904fd6a0cb80eec6dec2bae07fd8778b04caf3 Author: Marek Olšák Date: Sun Dec 26 04:30:51 2010 +0100 st/mesa: set vertex arrays state only when necessary The vertex arrays state should be set only when (_NEW_ARRAY | _NEW_PROGRAM) is dirty. This assumes user buffer content is mutable, which will be sorted out in the next commit. The following usage case should be much faster now: for (i = 0; i < 1000; i++) { glDrawElements(...); } Or even: for (i = 0; i < 1000; i++) { glSomeStateChangeOtherThanArraysOrProgram(...); glDrawElements(...); } The performance increase from this may be significant in some apps and negligible in others. It is especially noticable in the Torcs game (r300g): Before: 15.4 fps After: 20 fps Also less looping over attribs in st_draw_vbo yields slight speed-up in apps with lots of glDraw* calls. vertexrate BAD (lock up)! ---- ===== result for vertexrate 2a904fd6a0cb80eec6dec2bae07fd8778b04caf3 is the first bad commit commit 2a904fd6a0cb80eec6dec2bae07fd8778b04caf3 Author: Marek Olšák Date: Sun Dec 26 04:30:51 2010 +0100 st/mesa: set vertex arrays state only when necessary The vertex arrays state should be set only when (_NEW_ARRAY | _NEW_PROGRAM) is dirty. This assumes user buffer content is mutable, which will be sorted out in the next commit. The following usage case should be much faster now: for (i = 0; i < 1000; i++) { glDrawElements(...); } Or even: for (i = 0; i < 1000; i++) { glSomeStateChangeOtherThanArraysOrProgram(...); glDrawElements(...); } The performance increase from this may be significant in some apps and negligible in others. It is especially noticable in the Torcs game (r300g): Before: 15.4 fps After: 20 fps Also less looping over attribs in st_draw_vbo yields slight speed-up in apps with lots of glDraw* calls. :040000 040000 45e5630d445206ce8c7eab6ac6bfe144901695bb 927efd20e354ecae459227bd464dbb6001cb448e M src guest@slax:~/botva/src/src/mesa$ git bisect log git bisect start # good: [0f7325b89038937bd428f7c89ed9859189a0ab0b] i965: Emit texel offsets in sampler messages. git bisect good 0f7325b89038937bd428f7c89ed9859189a0ab0b # bad: [8767fe2437094f33db140a6b92f25116de4fc371] mesa: Sort extensions in extension string by year. git bisect bad 8767fe2437094f33db140a6b92f25116de4fc371 # bad: [fbd681f1a03f6ad62432107dc94e02674f6de7bf] i915g: Use dump function in sw winsys git bisect bad fbd681f1a03f6ad62432107dc94e02674f6de7bf # good: [1f5b67416810f7331fe71db0f767418473083701] egl_dri2: add nouveau support. git bisect good 1f5b67416810f7331fe71db0f767418473083701 # bad: [e0481cac7d57757d75a39763a1dd36b915979bb4] svga: Disable surface cache for textures git bisect bad e0481cac7d57757d75a39763a1dd36b915979bb4 # bad: [fc5ab1b19780ef97c5e7f6257a2d91121503bd53] mesa: use gl_format type instead of GLuint git bisect bad fc5ab1b19780ef97c5e7f6257a2d91121503bd53 # bad: [56029ce52bafbc51b5b6660383767257b7770cd7] r300g: inline some of the pipe_buffer_map/unmap calls git bisect bad 56029ce52bafbc51b5b6660383767257b7770cd7 # good: [9e96ea0652dda64f8eb311d7dfc9c50519ad02f0] r600g: add alignment cases for linear aligned git bisect good 9e96ea0652dda64f8eb311d7dfc9c50519ad02f0 # bad: [588fa884d212eba5ffbc69fda75db37d7c77214c] gallium: notify drivers about possible changes in user buffer contents git bisect bad 588fa884d212eba5ffbc69fda75db37d7c77214c # good: [cfaf217135d8a8e903b3fbf380f18170df018f0c] vbo: bind arrays only when necessary git bisect good cfaf217135d8a8e903b3fbf380f18170df018f0c # good: [cdca3c58aa2d9549f5188910e2a77b438516714f] gallium: remove pipe_vertex_buffer::max_index git bisect good cdca3c58aa2d9549f5188910e2a77b438516714f # bad: [2a904fd6a0cb80eec6dec2bae07fd8778b04caf3] st/mesa: set vertex arrays state only when necessary git bisect bad 2a904fd6a0cb80eec6dec2bae07fd8778b04caf3