summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* i915: Drop dead batch dumping code.Eric Anholt2013-06-263-860/+0
| | | | | | Batch dumping is now handled by shared code in libdrm. Acked-by: Kenneth Graunke <[email protected]>
* intel: Drop little bits of dead code.Eric Anholt2013-06-265-15/+0
| | | | | | I noticed these while building the fork-i915 branch. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Stop recomputing the miptree's size from the texture image.Eric Anholt2013-06-262-13/+7
| | | | | | | We've already computed what the dimensions of the miptree are, and stored it in the miptree. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Drop unused argument to translate_tex_format().Eric Anholt2013-06-263-4/+0
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* i965/gen4-5: Stop using bogus polygon_offset_scale field.Eric Anholt2013-06-263-20/+1
| | | | | | | | | | | | | | | | | | | | The polygon offset math used for triangles by the WM is "OffsetUnits * 2 * MRD + OffsetFactor * m" where 'MRD' is the minimum resolvable difference for the depth buffer (~1/(1<<16) or ~1/(1<<24)), 'm' is the approximated slope from the GL spec, and '2' is this magic number from the original i965 code dump that we deviate from the GL spec by because "it makes glean work" (except that it doesn't, because of some hilarity with 0.5 * approximately 2.0 != 1.0. go glean!). This clipper code for unfilled polygons, on the other hand, was doing "OffsetUnits * garbage + OffsetFactor * m", where garbage was MRD in the case of 16-bit depth visual (regardless the FBO's depth resolution), or 128 * MRD for 24-bit depth visual. This change just makes the unfilled polygons behavior match the WM's filled polygons behavior. Reviewed-by: Kenneth Graunke <[email protected]>
* i915: Use the current drawbuffer's depth for polygon offset scale.Eric Anholt2013-06-261-1/+1
| | | | | | | There's no reason to care about the window system visual's depth for handling polygon offset in an FBO, and it could only lead to pain. Reviewed-by: Kenneth Graunke <[email protected]>
* intel: Add perf debug for glCopyPixels() fallback checks.Eric Anholt2013-06-261-33/+39
| | | | | | | | | The separate function for the fallback checks wasn't particularly clarifying things, so I put the improved checks in the caller. (Note that the dropped _mesa_update_state() had already happened once at the start of the caller) Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Add debug to INTEL_DEBUG=blorp describing hiz/blit/clear ops.Eric Anholt2013-06-263-0/+39
| | | | | | | | | | | | | I think we've all added instrumentation at one point or another to see what's being called in blorp. Now you can quickly get output like: Testing glCopyPixels(depth). intel_hiz_exec depth clear to mt 0x16d9160 level 0 layer 0 intel_hiz_exec depth resolve to mt 0x16d9160 level 0 layer 0 intel_hiz_exec hiz ambiguate to mt 0x16d9160 level 0 layer 0 intel_hiz_exec depth resolve to mt 0x16d9160 level 0 layer 0 Reviewed-by: Kenneth Graunke <[email protected]>
* ra: Fix register spilling.Eric Anholt2013-06-261-5/+39
| | | | | | | | | | | | Commit 551c991606e543c3a264a762026f11348b37947e tried to avoid spilling registers that were trivially colorable. But since we do optimistic coloring, the top of the stack also contains nodes that are not trivially colorable, so we need to consider them for spilling (since they are some of our best candidates). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58384 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63674 NOTE: This is a candidate for the 9.1 branch.
* i965/fs: Dump IR when fatally not compiling due to bad register spilling.Eric Anholt2013-06-261-1/+2
| | | | | | It should never happen, but it does, and at this point, you're going to _mesa_problem() and abort() (unless it's just in precompile). Give the developer something to look at.
* xmlpool/build: Make sure to set mo properlyNaohiro Aota2013-06-251-1/+1
| | | | | | | | | | Some shells does not set variables sequentially in a statement i.e. "a=X b=${a}" won't set "b" to "X" but empty value. This patch introduce ";" to make sure "mo" is set properly before "lang" assignment. Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=471302
* i965: Remove the rest of brw_update_draw_buffer().Eric Anholt2013-06-251-27/+5
| | | | | | | | | | | The last piece of code with an effect was flagging _NEW_BUFFERS. Only, that is already flagged from everything that calls this function: Mesa GL state updates flag it before even calling down into the driver, and the calls from the DRI2 window system framebuffer update path end up flagging it as part of the ResizeBuffers() hook. Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Stop updating FBO state on drawbuffers change.Eric Anholt2013-06-251-8/+0
| | | | | | | | The computed fields are updated appropriately as part of the normal draw call path due to _NEW_BUFFERS being set. Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Stop recomputing drawbuffer bounds on drawbuffer change.Eric Anholt2013-06-251-2/+0
| | | | | | | | | For winsys FBOs, the bounds are appropriately updated immediately upon _mesa_resize_framebuffer(). For user FBOs, they're updated as part of the normal draw path state update due to _NEW_BUFFERS having been flagged. Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Remove _NEW_DEPTH state flagging on drawbuffers change.Eric Anholt2013-06-252-3/+1
| | | | | | | | Of the places noting a _NEW_DEPTH dependency, all were already checking for _NEW_BUFFERS if appropriate. Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel: Stop doing special _NEW_STENCIL state flagging on drawbuffers.Eric Anholt2013-06-254-10/+5
| | | | | | | | 2/3 packets depending on Stencil._Enabled already checked for _NEW_BUFFERS, so just add _NEW_BUFFERS to the remaining one. Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Stop flagging viewport/scissor change on drawbuffers change.Eric Anholt2013-06-251-3/+0
| | | | | | | | | The viewport (ctx->Viewport._WindowMap) doesn't change with drawable size changes, and we update scissor (ctx->DrawBuffer->_Xmin and friends) on _NEW_BUFFERS in things like brw_sf_state.c. Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Stop flagging _NEW_POLYGON on drawbuffers change.Eric Anholt2013-06-251-5/+0
| | | | | | | | Things like brw_sf.c that need to know about orientation are already recomputing on _NEW_BUFFERS. Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* radeon: Remove gratuitous custom framebuffer resize code.Eric Anholt2013-06-251-31/+0
| | | | | | | | | _mesa_resize_framebuffer(), the default value of the ResizeBuffers hook, already checks for a window system framebuffer and walks the renderbuffers calling AllocStorage(). Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel: Remove gratuitous custom framebuffer resize code.Eric Anholt2013-06-251-30/+6
| | | | | | | | | _mesa_resize_framebuffer(), the default value of the ResizeBuffers hook, already checks for a window system framebuffer and walks the renderbuffers calling AllocStorage(). Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Remove the Initialized field from framebuffers.Eric Anholt2013-06-257-12/+0
| | | | | | | | | | This existed to tell the core not to call GetBufferSize, except that even if you didn't set it nothing happened because nobody had a GetBufferSize. v2: Remove two more instances of setting the field (from Brian) Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Remove Driver.GetBufferSize and its callers.Eric Anholt2013-06-259-129/+0
| | | | | | | | Only the GDI driver set it to non-NULL any more, and that driver has a Viewport hook that should keep it limping along as well as it ever has. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: Fix gl_shader_program::UniformLocationBaseScale assert.Vinson Lee2013-06-251-1/+1
| | | | | | | | | | | | commit 26d86d26f9f972b19c7040bdb1b1daf48537ef3e added gl_shader_program::UniformLocationBaseScale. According to the code comments in that commit, UniformLocationBaseScale "must be >=1". UniformLocationBaseScale is of type unsigned. Coverity reported a "Macro compares unsigned to 0" defect as well. Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* svga: allow 3D transfers in svga_texture_transfer_map()Brian Paul2013-06-251-4/+3
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* svga: use new svga_define_texture_level() helperBrian Paul2013-06-252-2/+15
| | | | | | To get array bounds checking. Reviewed-by: Jose Fonseca <[email protected]>
* svga: fix layer/level mix-up in svga_mark_surface_dirty()Brian Paul2013-06-251-1/+1
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* svga: use new svga_age_texture_view() helperBrian Paul2013-06-252-1/+14
| | | | | | | | | The function does array bounds checking. Note, this exposes a bug in the svga_mark_surface_dirty() function: we're calling svga_age_texture_view() with a texture slice instead of mipmap level. This can lead to a failed assertion. That'll be fixed next. Reviewed-by: Jose Fonseca <[email protected]>
* svga: add array index assertion in svga_validate_sampler_view()Brian Paul2013-06-251-0/+1
|
* svga: use svga_texture() helper instead of castingBrian Paul2013-06-251-1/+1
|
* util/debug: Cleanup/improve debug_symbol_name_dbghelp.José Fonseca2013-06-251-78/+161
| | | | | | | | | | | | - use mgwhelp -- the successor for bfdhelp which does not have a hard dependency on BFD, and works on 64bits. - use a macro instead of hand-typing to dispatch DbgHelp functions - dump line numbers - dump module names when symbols are not available - support 64bits. - add comments Reviewed-by: Brian Paul <[email protected]>
* util/debug: Make debug_backtrace_capture work for 64bit windows.José Fonseca2013-06-252-2/+61
| | | | | | Rely on Windows' CaptureStackBackTrace to do the grunt work. Reviewed-by: Brian Paul <[email protected]>
* draw: allow overflows in the llvm pathsZack Rusin2013-06-251-4/+8
| | | | | | | | | | | | Because our code couldn't handle it we were skipping rendering if we detected overflows. According to the spec we should still render but with all 0 vertices, which is what the llvm code already does. So for the llvm paths lets enable processing even if an overflow condition has been detected. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* draw: avoid overflows in the llvm draw loopZack Rusin2013-06-251-8/+6
| | | | | | | | | | | Before we could easily overflow if start+count>max integer. To avoid it we can just iterate over the count. This makes sure that we never crash, since most of the overflow conditions is already handled. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* nvc0: do not set tiled mode on gart bo when fence debugging is usedMaarten Lankhorst2013-06-254-9/+15
| | | | Signed-off-by: Maarten Lankhorst <[email protected]>
* ilo: honor render condition in blitterChia-I Wu2013-06-254-8/+23
| | | | | | Make pass_render_condition() available for blitter, and check for render condition in (and only in) clear(), clear_render_target(), and clear_depth_stencil().
* ilo: remove ilo_shader_internal.h from GEN6 pipelineChia-I Wu2013-06-253-38/+55
| | | | Replace direct shader accesses with ilo_shader_get_kernel_param() and etc.
* ilo: remove ilo_shader_internal.h from GEN7 pipelineChia-I Wu2013-06-251-11/+6
| | | | Replace direct shader accesses with ilo_shader_get_kernel_param() and etc.
* ilo: speed up ilo_shader_select_kernel_routing() a bitChia-I Wu2013-06-252-4/+32
| | | | | Remember the order of the source attributes and avoid recomputation when it does not change.
* ilo: move SBE setup code to ilo_shader.cChia-I Wu2013-06-256-155/+237
| | | | | | | | | Add ilo_shader_select_kernel_routing() to construct 3DSTATE_SBE. It is called in ilo_finalize_states(), rather than in create_fs_state(), as it depends on VS/GS and rasterizer states. With this change, ilo_shader_internal.h is no longer needed for ilo_gpe_gen6.c.
* ilo: use ilo_shader_state exclusively in GPEChia-I Wu2013-06-256-107/+44
| | | | | | This allows us to remove ilo_shader_internal.h from ilo_gpe_gen7.c. The unfinished code in 3DSTATE_DS, 3DSTATE_HS, and INTERFACE_DESCRIPTOR_DATA are partly or entirely removed.
* ilo: map SO registers at shader compile timeChia-I Wu2013-06-256-37/+72
| | | | | | | The unmodified pipe_stream_output_info describes its outputs as if they are in TGSI_FILE_OUTPUT. Remap the register indices to where they appear in the VUE. TGSI_SEMANTIC_PSIZE needs a little care because it is at the W channel.
* ilo: use ilo_shader_cso for FSChia-I Wu2013-06-258-154/+255
| | | | | Add ilo_gpe_init_fs_cso() to construct 3DSTATE_PS and shader part of 3DSTATE_WM once and early for fragment shaders.
* ilo: use ilo_rasterizer_state exclusively in GPEChia-I Wu2013-06-255-15/+17
| | | | | Replace pipe_rasterizer_state by ilo_rasterizer_state for the remaining GPE functions for consistency.
* ilo: convert pipe_rasterizer_state to ilo_rasterizer_wmChia-I Wu2013-06-257-62/+141
| | | | | Add ilo_gpe_init_rasterizer_wm() to construct fixed-function part of 3DSTATE_WM once in create_rasterizer_state().
* ilo: use ilo_shader_cso for GSChia-I Wu2013-06-257-145/+225
| | | | | Add ilo_gpe_init_gs_cso() to construct 3DSTATE_GS once and early for geometry shaders.
* ilo: introduce ilo_shader_cso for VSChia-I Wu2013-06-257-42/+102
| | | | | | | When a new VS kernel is generated, a newly added function, ilo_gpe_init_vs_cso(), is called to construct 3DSTATE_VS command in ilo_shader_cso. When the command needs to be emitted later, we copy the command from the CSO instead of constructing it dynamically.
* ilo: add functions to query shadersChia-I Wu2013-06-252-0/+152
| | | | | | Add ilo_shader_get_type() to query the type (PIPE_SHADER_x) of the shader. Add ilo_shader_get_kernel_offset() and ilo_shader_get_kernel_param() to query the cache offset and various kernel parameters of the selected kernel.
* ilo: clean up finalize_shader_states()Chia-I Wu2013-06-254-62/+79
| | | | | | | | Add ilo_shader_select_kernel() to replace the dependency table, ilo_shader_variant_init(), and ilo_shader_state_use_variant(). With the changes, we no longer need to include ilo_shader_internal.h in ilo_state.c.
* ilo: use multiple entry points for shader creationChia-I Wu2013-06-256-32/+96
| | | | | | | | | | | | Replace ilo_shader_state_create() by ilo_shader_create_vs() ilo_shader_create_gs() ilo_shader_create_fs() ilo_shader_create_cs() Rename ilo_shader_state_destroy() to ilo_shader_destroy(). The old ilo_shader_destroy() is renamed to ilo_shader_destroy_kernel().
* ilo: move internal shader interface to a new headerChia-I Wu2013-06-2513-183/+226
| | | | | Move it to ilo_shader_internal.h. The goal is to make files not part of the compiler include only ilo_shader.h eventually.