summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300
Commit message (Collapse)AuthorAgeFilesLines
* r300g/swtcl: fix CS overrunMarek Olšák2010-09-162-8/+28
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=29901
* r300g: prevent creating multiple winsys BOs for the same handleMarek Olšák2010-09-151-4/+0
| | | | | | | This fixes a DRM deadlock in the cubestorm xscreensaver, because somehow there must not be 2 different BOs relocated in one CS if both BOs back the same handle. I was told it is impossible to happen, but apparently it is not, or there is something else wrong.
* gallium: introduce get_shader_param (ALL DRIVERS CHANGED) (v3)Luca Barbieri2010-09-141-35/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes in v3: - Also change trace, which I forgot about Changes in v2: - No longer adds tessellation shaders Currently each shader cap has FS and VS versions. However, we want a version of them for geometry, tessellation control, and tessellation evaluation shaders, and want to be able to easily query a given cap type for a given shader stage. Since having 5 duplicates of each shader cap is unmanageable, add a new get_shader_param function that takes both a shader cap from a new enum and a shader stage. Drivers with non-unified shaders will first switch on the shader and, within each case, switch on the cap. Drivers with unified shaders instead first check whether the shader is supported, and then switch on the cap. MAX_CONST_BUFFERS is now per-stage. The geometry shader cap is removed in favor of checking whether the limit of geometry shader instructions is greater than 0, which is also used for tessellation shaders. WARNING: all drivers changed and compiled but only nvfx tested
* r300g/swtcl: unlock VBO after draw_flushMarek Olšák2010-09-131-4/+1
| | | | | https://bugs.freedesktop.org/show_bug.cgi?id=29901 https://bugs.freedesktop.org/show_bug.cgi?id=30132
* r300g: fix SWTCLMarek Olšák2010-09-134-41/+99
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=29901
* r300g: print unassigned FS inputs for DBG_RSMarek Olšák2010-09-131-0/+9
|
* r300g: add new debug options for dumping scissor regs and disabling CBZB clearMarek Olšák2010-09-135-3/+16
|
* r300g: skip rendering if CS space validation failsMarek Olšák2010-09-133-52/+73
| | | | | | | | | radeon_cs_space_check flushes the pipe context on failure, retries the validation, and returns -1 if it fails again. At that point, there is nothing we can do, so let's skip draw operations instead of getting stuck in an infinite loop. This code path ideally should never be hit.
* r300g: remove u_upload_flush from r300_draw_arraysMarek Olšák2010-09-131-1/+0
| | | | | This a leftover probably and is unnecessary, since we flush u_upload_mgr in r300_flush.
* r300/compiler: Enable presubtract sourcesTom Stellard2010-09-102-0/+2
| | | | | | | The r300 compiler can now emit instructions that select from the presubtract source. A peephole optimization has been added to convert instructions like: ADD Temp[0].x, none.1, -Temp[1].x into the INV (1 - src0) presubtract operation.
* r300g,r300c: memset the compiler struct to zerosMarek Olšák2010-09-051-0/+1
| | | | This should fix bogus reports "Too many temporaries." and maybe some others.
* Revert "r300g: refuse to create a texture with size 0"Marek Olšák2010-09-041-12/+0
| | | | | | | | | | This reverts commit 5cdedaaf295acae13ac10feeb3143d83bc53d314. https://bugs.freedesktop.org/show_bug.cgi?id=30002 Conflicts: src/gallium/drivers/r300/r300_texture.c
* r300g: remove unnecessary assignmentsMarek Olšák2010-09-041-6/+0
|
* r300g: skip draw calls with no vertex elements, fixing hardlocksMarek Olšák2010-09-041-0/+3
|
* r300g: add a new debug option which disables compiler optimizationsMarek Olšák2010-09-044-18/+22
| | | | | | | | | | | | Those are: - dead-code elimination - constant folding - peephole (mainly copy propagation) - register allocation There are some bugs which I need to track down. Also fix up the descriptions of all the debug options.
* r300/compiler: make optimizations not use 0.5 swizzles in vertex shadersMarek Olšák2010-09-042-0/+2
|
* r300/compiler: add new compiler parameter max_constantsMarek Olšák2010-09-042-0/+2
|
* r300g: only check for an empty shader if there are no compile errorsMarek Olšák2010-09-041-8/+8
|
* r300/compiler: add new compiler parameter max_alu_instsMarek Olšák2010-09-042-0/+2
|
* r300g: fix warning in winsysMarek Olšák2010-08-301-0/+1
|
* r300g,u_blitter: use u_framebufferMarek Olšák2010-08-292-3/+3
| | | | Removing another function duplication in u_blitter.
* r300g: fix blitting between 2D NPOT mipmapsMarek Olšák2010-08-284-23/+51
| | | | | | | | | Even though MIP filtering is not supported, we can bind an arbitrary mipmap as the zero mipmap level. NPOT textures now follow GL_TEXTURE_BASE_LEVEL and GL_TEXTURE_MIN_LOD. This fixes piglit/fbo-copyteximage.
* r300g: fix min/max lod computationMathias Fröhlich2010-08-281-2/+2
|
* r300g: set the correct value in PVS_NUM_CNTLRSMarek Olšák2010-08-281-1/+1
| | | | As per docs.
* r300g: Include missing header in r300_texture.h.Vinson Lee2010-08-271-0/+1
| | | | Include p_compiler.h for uint32_t and boolean symbols.
* r300g: Include missing header in r300_texture_desc.h.Vinson Lee2010-08-261-0/+1
| | | | | | Include p_format.h for enum pipe_format symbol. Fixes r300g build.
* r300g: fix constant buffer upload once again for r3xx->r4xxMarek Olšák2010-08-261-1/+1
|
* r300g: fix potentially uninitialized variables in create_rs_stateMarek Olšák2010-08-251-5/+2
| | | | | | It had no impact on correctness, though. Reported by Vinson Lee.
* draw: specialized cliptesting routinesKeith Whitwell2010-08-251-2/+0
|
* gallium: Use draw_set_index_buffer and others.Chia-I Wu2010-08-252-12/+9
| | | | | | Update all drivers to use draw_set_index_buffer, draw_set_mapped_index_buffer, and draw_vbo. Remove draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
* r300g: fix gl_PointCoordMarek Olšák2010-08-251-2/+7
| | | | | Is this hackish or is this the correct way to use point_quad_rasterization? Copied from nvfx.
* r300g: eliminate unused constants in FSMarek Olšák2010-08-253-7/+32
|
* r300g: eliminate unused constants in VSMarek Olšák2010-08-255-8/+31
|
* r300g: clean up some mess in set_constant_bufferMarek Olšák2010-08-252-22/+1
|
* r300g: fix indentationMarek Olšák2010-08-252-8/+8
|
* r300g: reset the index bias to 0 at the end of CSMarek Olšák2010-08-254-5/+12
|
* r300g: Remove unused variable.Vinson Lee2010-08-231-2/+0
| | | | | | Fixes this GCC warning. r300_render.c: In function 'r300_draw_flush_vbuf': r300_render.c:988: warning: unused variable 'r300_render'
* r300g: avoid stall in no-tcl drawing when mapping vboDave Airlie2010-08-233-15/+26
| | | | | | | | | the current code reuses the same vbo over and over, however after a flush we'd stall and wait for mapping on the vbo when we should just fire and forget. On a gears test this brings me from ~620 to ~750 on my rv530 in swtcl mode. Signed-off-by: Dave Airlie <[email protected]>
* gallium: make all checks for PIPE_TEXTURE_2D check for PIPE_TEXTURE_RECT tooLuca Barbieri2010-08-203-5/+10
| | | | | | | Searched for them with: git grep -E '[!=]=.*PIPE_TEXTURE_2D|PIPE_TEXTURE_2D.*[!=]=|case.*PIPE_TEXTURE_2D' Behavior hasn't been changed.
* r300g: do not use fastfill with 16-bit zbuffersMarek Olšák2010-08-191-0/+4
| | | | | | | To my knowledge, there is no way to flush zmask and thus write the clear value. This fixes zbuffer reads, among other things.
* r300g: fix context destroy under hyperzDave Airlie2010-08-171-3/+3
| | | | | | we were destroying the mm before unrefing all the objects, so segfault. Signed-off-by: Dave Airlie <[email protected]>
* r300g: fix assert in the rasterizer block for r3xx-r4xxMarek Olšák2010-08-161-1/+1
| | | | Reported-by: Niels Ole Salscheider <[email protected]>
* r300g: fix an invalid pointer in freeMarek Olšák2010-08-161-1/+1
|
* r300g: Let hyperz init failnobled2010-08-163-6/+20
| | | | Signed-off-by: Marek Olšák <[email protected]>
* r300g: Fix leaks in failed context creationnobled2010-08-161-34/+48
| | | | | | | | | | | This changes r300_destroy_context() so it can be called on a partially-initialized context, and uses it when r300_create_context() hits a fatal error. This makes sure r300_create_context() doesn't leak memory or neglect to call r300_update_num_contexts() when it fails. Signed-off-by: Marek Olšák <[email protected]>
* r300g: Fix macronobled2010-08-161-1/+3
| | | | | | | This fixes a potential bug if (has_hyperz) is false (it would still init the atom as if has_hyperz were true). Signed-off-by: Marek Olšák <[email protected]>
* r300/compiler: implement DP2 opcodeMarek Olšák2010-08-161-1/+1
|
* r300/compiler: implement SSG opcodeMarek Olšák2010-08-161-1/+1
|
* r300g: mark HiZ/ZMask_clear atoms as non-dirty after emission in clearMarek Olšák2010-08-151-1/+4
|
* r300g: do not use HiZ if HiZ RAM is not properly initializedMarek Olšák2010-08-155-18/+23
|