summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/brw_vs_emit.c
AgeCommit message (Collapse)Author
2010-12-01i965: Add support for loops in the VS.Eric Anholt
This follows the changes done for the FS alongside the EU emit code.
2010-12-01i965: also using align1 mode for math2 on sandybridgeZhenyu Wang
Like Eric's workaround patch of commit 490c23ee6be2e8531b5a14d42f808de83d401130. This forces to align1 mode for math2 too.
2010-11-24i965: Don't write mrf assignment for pointsize outputKristian Høgsberg
https://bugs.freedesktop.org/show_bug.cgi?id=31894
2010-11-23i965: Use the new embedded compare in SEL on gen6 for VS MIN and MAX opcodes.Eric Anholt
Cuts the extra CMP instruction that used to precede SEL.
2010-11-10i965: Work around strangeness in swizzling/masking of gen6 math.Eric Anholt
Sometimes we swizzled in a different channel it looked like, and sometimes we swizzled in zero. Or something. Having looked at the output of another code generator for this chip, this is approximately what they do, too: use align1 math on temporaries, and then move the results into place. Fixes: glean/vp1-EX2 test glean/vp1-EXP test glean/vp1-LG2 test glean/vp1-RCP test (reciprocal) glean/vp1-RSQ test 1 (reciprocal square root) shaders/glsl-cos shaders/glsl-sin shaders/glsl-vs-masked-cos shaders/vpfp-generic/vp-exp-alias
2010-11-10Revert "i965: VS use SPF mode on sandybridge for now"Zhenyu Wang
This reverts commit 9c39a9fcb2c76897e9b5aff68ce197a411c4e25c. Remove VS SPF mode, conditional instruction works for VS now.
2010-11-03intel: Annotate debug printout checks with unlikely().Eric Anholt
This provides the optimizer with hints about code hotness, which we're quite certain about for debug printouts (or, rather, while we developers often hit the checks for debug printouts, we don't care about performance while doing so).
2010-10-28i965: Add user clip planes support to gen6.Eric Anholt
Fixes piglit user-clip, and compiz desktop switching when dragging a window and using just 2 desktops. Bug #30446.
2010-10-18i965: Assert out on gen6 VS constant buffer reads that hang the GPU for now.Eric Anholt
2010-10-11i965: Don't compute-to-MRF in gen6 VS math.Eric Anholt
There was code to do this for pre-gen6 already, this just enables it for gen6 as well.
2010-09-28i965: VS use SPF mode on sandybridge for nowZhenyu Wang
Until conditional instructions were fixed, use SPF mode instead for now.
2010-09-28i965: fix point size setting in header on sandybridgeZhenyu Wang
2010-09-28i965: Fix color interpolation on sandybridgeZhenyu Wang
Don't double store position in vertex attribute. This makes color interpolation right by using barycentric coordinates.
2010-09-07i965: Store the byte address in the VS constant buffer as an integer.Eric Anholt
We carefully multiplied our two ints (since we want to be precise after all) then stored them in a float, which is not specced to really work, in addition to wasting precision. Fixes vp-arl-constant-array-huge-* things since the assertions were added.
2010-09-07i965: set the source width/stride when handling reladdr dests in the VS.Eric Anholt
This is a requirement specified in the docs. No behavior change in glsl-vs-varying-array.shader_test that violated these requirements.
2010-08-30i965: Clear the cached constant buffer entry in the VS at control flow.Eric Anholt
Fixes the 7 regressions with constant buffers forced on with piglit -t glsl (glsl-vs-if-*).
2010-08-30i965: Make brw_CONT and brw_BREAK take the pop count.Eric Anholt
We always need to set it, so pass it in.
2010-08-26i965: Add support for destination RelAddr writes in the VS.Eric Anholt
Fixes: glsl-vs-varying-array
2010-08-20i965: Add AccWrCtl support on Sandybridge.Zhenyu Wang
Whenever the accumulator results are needed, this bit must be set.
2010-08-18i965: Set the if stack pop count when breaking out of a loop inside an if.Eric Anholt
Otherwise, we might end up with the if stack pointing at the wrong place. Fixes GPU hang with glsl-vs-if-loop.
2010-08-18i965: Don't set the swizzle on an immediate value in the VS.Eric Anholt
Fixes glsl-vs-if-nested (70.0 is not <= 70.000648 thanks to the swizzle bits getting set). Some safety checks are added to make sure this doesn't happen again as we increase the usage of immediate values in program generation.
2010-08-17i965: Add support for DP2 in the VS.Eric Anholt
Fixes glsl-vs-dot-vec2.
2010-08-09i965: More s/stderr/stdout/ for program debug.Eric Anholt
2010-08-04i965: Settle on printing our program debug to stdout.Eric Anholt
Mixing stderr (_mesa_print_program, _mesa_print_instruction, _mesa_print_alu) with stdout means that when writing both to a file, there isn't a consistent ordering between the two.
2010-07-26Merge remote branch 'origin/master' into glsl2Eric Anholt
This pulls in multiple i965 driver fixes which will help ensure better testing coverage during development, and also gets past the conflicts of the src/mesa/shader -> src/mesa/program move. Conflicts: src/mesa/Makefile src/mesa/main/shaderapi.c src/mesa/main/shaderobj.h
2010-07-26i965: Allow VS MOVs to use immediate constants.Eric Anholt
Clarifies program assembly, and with a little tweak to always use constant_map, we could cut down on constant buffer payload.
2010-07-23i965: Add support for VS relative addressing of temporary arrays.Eric Anholt
Fixes glsl-vs-arrays. Bug #27388.
2010-07-22i965: Avoid extra MOV in VS indirect register reads.Eric Anholt
2010-07-22i965: Fix up VS temporary array access for fixed index offset != 0.Eric Anholt
2010-07-21i965: In the VS, multiply the address reg by the appropriate register size.Eric Anholt
The ARL value is increments of vec4 in the register file. But PROGRAM_TEMPORARY or PROGRAM_INPUT are stored as vec4s interleaved between the two verts being executed (thus a vec8 each), compared to PROGRAM_STATE_VAR being packed vec4s. Fixes: glsl-vs-arrays-2 glsl-vs-mov-after-deref (without regressing glsl-vs-arrays-3)
2010-07-21i965: Clean up brw_dp_READ_4_vs() now that it has fewer options to support.Eric Anholt
2010-07-21i965: Support relative addressed VS constant reads using the appropriate msg.Eric Anholt
The previous support was overly complicated by trying to use the same 1-OWORD message for both offsets.
2010-07-21i965: Clean up dead code from the VS get_constant/get_reladdr_constant split.Eric Anholt
2010-07-21i965: Remove an unused variable.Carl Worth
To quiet a compiler warning.
2010-07-19i965: Mostly fix glsl-max-varyings.Eric Anholt
There was confusion on both the size of message we can send, and on what the URB destination offset means. The remaining problems appear to be due to spilling of regs in the fragment shader being broken.
2010-07-19i965: Clean up message register setup in emit_vertex_write().Eric Anholt
2010-07-19i965: Don't set up VUE space for the disabled user clip distances on gen6.Eric Anholt
2010-06-30i965: Add support for OPCODE_SSG.Eric Anholt
The old compiler didn't use SSG, and instead emitted SGT/SGT/SUB. We can do a little better for SSG than we do for the SGT series.
2010-06-10mesa: rename src/mesa/shader/ to src/mesa/program/Brian Paul
2010-05-14i965: Dump out the correct shared function for SEND on Ironlake.Eric Anholt
2010-04-29i965: Implement VS MAX in a more obvious way.Eric Anholt
This should be functionally equivalent, with the possible exception of NaN handling.
2010-04-29i965: Use immediate float operands for some VS instructions.Eric Anholt
We could use this to reduce constant register pressure, but for now it makes the resulting program assembly much more readable.
2010-04-21intel: Clean up chipset name and gen num for IronlakeZhenyu Wang
Rename old IGDNG to Ironlake, and set 'gen' number for Ironlake as 5, so tracking the features with generation num instead of special is_ironlake flag. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
2010-04-17i965: Assert that an OPCODE_IF was seen before an OPCODE_ELSE.Vinson Lee
2010-03-22i965: Remove gratuitous jump or nop from OPCODE_END to vertex emit.Eric Anholt
Just emit the URB write at END time. Subroutine code that sits after OPCODE_END won't be executed since we've ended the thread at the point that the URB write is done.
2010-03-16Revert "i965: Do VS SGT, SLT, and friends using CMP, SEL instead of CMP, ↵Eric Anholt
MOV, MOV." This reverts commit 8ef3b1834a896927bdd4f2aea552cdb732849da9. Fixes piglit glsl-vs-if.
2010-03-12i965: Do VS SGT, SLT, and friends using CMP, SEL instead of CMP, MOV, MOV.Eric Anholt
2010-03-12i965: Fix up VS DP4 sequences to avoid dependency control.Eric Anholt
This is recommended by the B-Spec. I wasn't able to measure any difference in ETQW.
2010-03-09i965: Fix nested loops in the VS.Eric Anholt
We were patching up all the break and continues between the start of our loop and the end of our loop, even if they were breaks/continues for an inner loop. Avoiding patching already patched breaks/continues fixes piglit glsl-vs-loop-nested.
2010-03-03i965: Fix up Sandybridge VS sizing.Eric Anholt