summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300
AgeCommit message (Collapse)Author
2010-12-11r300/compiler: fix swizzle lowering with a presubtract source operandMarek Olšák
If a source operand has a non-native swizzle (e.g. the KIL instruction cannot have a swizzle other than .xyzw), the lowering pass uses one or more MOV instructions to move the operand to an intermediate temporary with native swizzles. This commit fixes that the presubtract information was lost during the lowering. NOTE: This is a candidate for both the 7.9 and 7.10 branches.
2010-12-11r300/compiler: fix LIT in VSMarek Olšák
This fixes broken rendering of trees in ETQW. The trees still disappear for an unknown reason when they are close. Broken since: 2ff9d4474bdf5f05852ad4963d0b597d20743678 r300/compiler: make lowering passes possibly use up to two less temps NOTE: This is a candidate for the 7.10 branch.
2010-12-08r300/compiler: remove at least unused immediates if externals cannot be removedMarek Olšák
2010-12-08r300/compiler: make lowering passes possibly use up to two less tempsMarek Olšák
CMP may now use two less temps, other non-native instructions may end up using one less temp, except for SIN/COS/SCS, which I am leaving unchanged for now. This may reduce register pressure inside loops, because the register allocator doesn't do a very good job there.
2010-12-08r300/compiler: handle DPH and XPD in rc_compute_sources_for_writemaskMarek Olšák
This bug can only be triggered if you put deadcode before native rewrite.
2010-12-08r300/compiler: do not print pair/tex/presub program stats for vertex shadersMarek Olšák
2010-12-08r300/compiler: cleanup rc_run_compilerMarek Olšák
2010-12-08r300/compiler: add a function to query program stats (alu, tex, temps..)Marek Olšák
2010-12-08r300/compiler: don't terminate regalloc if we surpass max temps limitMarek Olšák
The same check is already in a later pass (translate_vertex_program).
2010-12-02r300/compiler: disable the swizzle lowering pass in vertex shadersMarek Olšák
It was a no-op because all swizzles are native there.
2010-12-01r300/compiler: implement and lower OPCODE_CLAMPMarek Olšák
Needed for st/vega.
2010-11-26r300/compiler: move util functions to radeon_compiler_utilMarek Olšák
The compiler seriously needs a cleanup as far as the arrangement of functions is concerned. It's hard to know whether some function was implemented or not because there are so many places to search in and it can be anywhere and named anyhow.
2010-11-26r300/compiler: add a function for swizzling a maskMarek Olšák
2010-11-26r300/compiler: remove duplicate function rc_mask_to_swzMarek Olšák
2010-11-26r300/compiler: fix rc_rewrite_depth_out for it to work with any instructionMarek Olšák
It looks like the function was originally written for ARB_fragment_program. NOTE: This is a candidate for the 7.9 branch.
2010-11-24r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning with linux-x86 build. radeon_pair_regalloc.c: In function ‘compute_live_intervals’: radeon_pair_regalloc.c:222: warning: ISO C90 forbids mixed declarations and code
2010-11-24r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning with linux-x86 build. radeon_pair_regalloc.c: In function ‘compute_live_intervals’: radeon_pair_regalloc.c:221: warning: ISO C90 forbids mixed declarations and code
2010-11-23r300/compiler: Don't allow presubtract sources to be remapped twiceTom Stellard
https://bugs.freedesktop.org/show_bug.cgi?id=31193 NOTE: This is a candidate for the 7.9 branch.
2010-11-21r300/compiler: Add a more efficient version of rc_find_free_temporary()Tom Stellard
2010-11-21r300/compiler: Enable rename_reg pass for r500 cardsTom Stellard
In addition, the rename_reg pass has been rewritten to use rc_get_readers().
2010-11-21r300/compiler: Use presubtract operations as much as possibleTom Stellard
Previously, presubtract operations where only being used by instructions with less than three source source registers.
2010-11-21r300/compiler: Convert RGB to alpha in the schedulerTom Stellard
2010-11-21r300/compiler: Track readers through branches in rc_get_readers()Tom Stellard
2010-11-21r300/compiler: Handle BREAK and CONTINUE in rc_get_readers()Tom Stellard
2010-11-21r300/compiler: Add rc_get_readers()Tom Stellard
2010-11-21r300/compiler: Ignore alpha dest register when replicating the resultTom Stellard
When the result of the alpha instruction is being replicated to the RGB destination register, we do not need to use alpha's destination register. This fixes an invalid "Too many hardware temporaries used" error in the case where a transcendent operation writes to a temporary register greater than max_temp_regs. NOTE: This is a candidate for the 7.9 branch.
2010-11-21r300/compiler: Use zero as the register index for unused sourcesTom Stellard
This fixes an invalid "Too many hardware temporaries used" error in the case where a source reads from a temporary register with an index greater than max_temp_regs and then the source is marked as unused before the register allocation pass. NOTE: This is a candidate for the 7.9 branch.
2010-11-21r300/compiler: Fix instruction scheduling within IF blocksTom Stellard
Reads of registers that where not written to within the same block were not being tracked. So in a situations like this: 0: IF 1: ADD t0, t1, t2 2: MOV t2, t1 Instruction 2 didn't know that instruction 1 read from t2, so in some cases instruction 2 was being scheduled before instruction 1. NOTE: This is a candidate for the 7.9 branch.
2010-11-21r300/compiler: Fix register allocator's handling of loopsTom Stellard
NOTE: This is a candidate for the 7.9 branch.
2010-11-21r300/compiler: Make sure presubtract sources use supported swizzlesTom Stellard
NOTE: This is a candidate for the 7.9 branch.
2010-11-18mesa: pass gl_format to _mesa_init_teximage_fields()Brian Paul
This should prevent the field going unset in the future. See bug http://bugs.freedesktop.org/show_bug.cgi?id=31544 for background. Also remove unneeded calls to clear_teximage_fields(). Finally, call _mesa_set_fetch_functions() from the _mesa_init_teximage_fields() function so callers have one less thing to worry about.
2010-11-15r300: set gl_texture_image::TexFormat field in r300SetTexBuffer2()Brian Paul
See https://bugs.freedesktop.org/show_bug.cgi?id=31544 Note: this is a candidate for the 7.9 branch
2010-11-08radeon: Implement GL_OES_EGL_imageJohann Rudloff
agd5f: add support to radeon/r200/r300 as well
2010-11-08mesa/r300classic: Fix dri2Invalidate/radeon_prepare_render for page flipping.Mario Kleiner
A call to radeon_prepare_render() at the beginning of draw operations was placed too deep in the call chain, inside r300RunRenderPrimitive(), instead of r300DrawPrims() where it belongs. This leads to emission of stale target color renderbuffer into the cs if bufferswaps via page-flipping are used, and thereby causes massive rendering corruption due to unsynchronized rendering into the active frontbuffer. This patch fixes such problems for use with the upcoming radeon page-flipping patches. Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
2010-11-04r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning with linux-x86 build. radeon_dataflow.c: In function 'get_readers_normal_read_callback': radeon_dataflow.c:472: warning: ISO C90 forbids mixed declarations and code
2010-11-04r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning with linux-x86 build. radeon_pair_schedule.c: In function 'merge_presub_sources': radeon_pair_schedule.c:312: warning: ISO C90 forbids mixed declarations and code
2010-11-01r300/compiler: Don't track readers into an IF block.Tom Stellard
This makes rc_get_readers_normal() more conservative than it needs to be, but it fixes some incorrect behavior in the optimization passes.
2010-10-30r300/compiler: Don't clobber presubtract sources during optimizationsTom Stellard
https://bugs.freedesktop.org/show_bug.cgi?id=28294
2010-10-27r300/compiler: Use rc_get_readers_normal() for presubtract optimizationsTom Stellard
2010-10-19r300/compiler: Remove unused variable.Vinson Lee
2010-10-18r300g: Add new debug option for logging vertex/fragment program statsTom Stellard
2010-10-18r300/compiler: Add a new function for more efficient dataflow analysisTom Stellard
rc_get_readers_normal() supplies a list of readers for a given instruction. This function is now being used by the copy propagate optimization and will eventually be used by most other optimization passes as well.
2010-10-18r300/compiler: Clear empty registers after constant foldingTom Stellard
2010-10-18r300/compiler: Fix incorrect assumptionTom Stellard
It is possible for a single pair instruction arg to select from both an RGB and an Alpha source.
2010-10-18r300/compiler: Create a helper function for merging presubtract sourcesTom Stellard
2010-10-13Drop GLcontext typedef and use struct gl_context insteadKristian Høgsberg
2010-10-13Rename GLvisual and __GLcontextModes to struct gl_configKristian Høgsberg
2010-10-12r300: Silence uninitialized variable warning.Vinson Lee
Fixes this GCC warning. r300_state.c: In function 'r300InvalidateState': r300_state.c:2247: warning: 'hw_format' may be used uninitialized in this function r300_state.c:2247: note: 'hw_format' was declared here
2010-09-30dri/r300: remove duplicated includeNicolas Kaiser
Remove duplicated include. Signed-off-by: Brian Paul <brianp@vmware.com>
2010-09-29r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning on linux-x86 build. r3xx_vertprog.c: In function ‘ei_if’: r3xx_vertprog.c:396: warning: ISO C90 forbids mixed declarations and code