summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965
AgeCommit message (Collapse)Author
2010-04-29i965: Reject shaders with uninlined function calls instead of hanging.Eric Anholt
Most of the failure from using uninlined function calls ends up being just bad rendering, but nested function calls in the VS currently hang the GPU, so reject them and explain why.
2010-04-29i965: Fix cube map layouts on Ironlake.Eric Anholt
We were doubling up the offsets for the mipmap levels for CPU access. Instead of reimplementing i945_miptree_layout_2d with 6 cube images separated by qpitch, share that function and provide the level offsets later. Fixes piglit cubemap and fbo-cubemap.
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-27Fill the padding between entrys in the sampler keyPierre Willenbrock
This struct is used to generate a hash, ignoring the entry boundaries. Signed-off-by: Eric Anholt <eric@anholt.net>
2010-04-22i965: Fix assertion for surface tile offset usage on Ironlake.Eric Anholt
Fixes assertion failure in fbo-generatemipmap-npot.
2010-04-22i965: Fix scissoring when width or height is 0.Eric Anholt
We would run into trouble due to the hardware using inclusive numbers and the subtraction to handle that producing negative (meaning large positive) coordinates. Bug #27643.
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-04-10i965: Remove unnecessary header.Vinson Lee
2010-03-24i965: Handle the negate and abs swizzles on brw_wm_glsl.c immediate args.Eric Anholt
Fixes piglit glsl-orangebook-ch06-bump, regressed with 4fc57322258a750c0a9cabc77372b5ccde1fa877
2010-03-22i965: Add disasm for SNB MATH opcode.Eric Anholt
2010-03-22i965: Enable normal clipping on SNB.Eric Anholt
Rejecting all doesn't seem to be helping get the pipeline lit up.
2010-03-22i965: Force single program flow in SNB GS, to match gen4 GS.Eric Anholt
2010-03-22i965: Correct copy and wasted field shifts for SNB GS URB.Eric Anholt
2010-03-22i965: Enable VS on SNB.Eric Anholt
It appears that the thing that was killing VS threads was the gratuitous NOP that replaced the gratuitous jump from OPCODE_END to the nearby OPCODE_END implementation. With that gone, we can move on to the rest of the pipeline.
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-22i965: Ignore execution mask for the mov(m0, g0) of VS URB write header on SNB.Eric Anholt
Otherwise, we may not get the FFTID set up which would break freeing of resources.
2010-03-22i965: Allow FS constants to be used as immediates instead of push/pull.Eric Anholt
The hope is to later take advantage of the reduced constant usage to free up regs. This only covers the GLSL path at the moment, because the brw_wm_emit path doesn't get the information as to whether a float value is a constant or a uniform.
2010-03-22i965: Add INTEL_DEBUG=glsl_force to force brw_wm_glsl.c.Eric Anholt
I keep finding the desire to force this path to debug it instead of cooking up goofy-looking testcases to do so.
2010-03-22i965: Optimize OPCODE_CMP by using BRW_SEL to choose results.Eric Anholt
Tested with piglit glsl-fs-sqrt-branch, fp-cmp.vpfp.
2010-03-17intel: Replace mt->pitch with mt->region->pitch.Eric Anholt
The pitch is not really an inherent part of the miptree, since it's not part of any of the layout calculations, and it's dictated by the libdrm-allocated region pitch now.
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-16Revert "i965: Do FS SLT, SGT, and friends using CMP, SEL instead of CMP, ↵Eric Anholt
MOV, MOV." This reverts commit 46450c1f3f93bf4dc96696fc7e0f0eb808d9c08a. I was wrong about null reg behavior -- it reads undefined, not 0. And they're not kidding.
2010-03-12i965: Clarify the roles of emit_pixel_xy(), emit_delta_xy(), emit_wpos_xy().Eric Anholt
2010-03-12i965: Clarify that DELTAXY always occurs for both X and Y.Eric Anholt
2010-03-12i965: Do FS SLT, SGT, and friends using CMP, SEL instead of CMP, MOV, MOV.Eric Anholt
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-12i965: When doing a swizzled kill pixel, don't do redundant channel compares.Eric Anholt
This was obvious when looking at the compiled output of ETQW's shaders.
2010-03-12i965: Use the SEL instruction to implement MIN and MAX.Eric Anholt
Saves an instruction over doing conditional moves.
2010-03-10i965: Use the PLN instruction when possible in interpolation.Eric Anholt
Saves an instruction in PINTERP, LINTERP, and PIXEL_W from brw_wm_glsl.c For non-GLSL it isn't used yet because the deltas have to be laid out differently.
2010-03-10i965: Set up the execution size before relying on it.Eric Anholt
Fixes hangs with texturing in the non-GLSL path since f6d210c284751ac50a8d6358de7e75a1ff1e4ac7
2010-03-10i965: Add support for the CMP opcode in the GLSL path.Eric Anholt
This would be triggered by use of sqrt() along with control flow. Fixes piglit-fs-sqrt-branch and a bug in Yo Frankie!.
2010-03-10i965: Print the opcode name for unrecognized opcodes in the GLSL path.Eric Anholt
2010-03-10i965: Fix the response len of masked sampler messages for 8-wide dispatch.Eric Anholt
The bad response length would hang the GPU with a masked sample in a shader using control flow. For 8-wide, the response length is always 4, and masked slots are just not written to. brw_wm_glsl.c already allocates registers in the right locations. Fixes piglit glsl-fs-bug25902 (fd.o bug #25902).
2010-03-10i965: Print the offset for IFF in disasmEric Anholt
2010-03-09i965: Fix ENDLOOP to only patch up this loop's BREAK and CONT.Eric Anholt
Corresponds to d225a25e21a24508aea3b877c78beb35502e942d and fixes piglit glsl-fs-loop-nested. Bug #25173.
2010-03-09i965: Unalias all GLSL source regs from the destination regs used.Eric Anholt
We were doing it ad-hoc before, as instructions with potential aliasing problems were identified. But thanks to swizzling basically anything can have aliasing, so just do it generally at source reg setup time. This is somewhat inefficient, because sometimes an operation doesn't need unaliasing protection if the swizzling is safe, but the unaliasing before didn't cover those cases either. Fixes piglit glsl-fs-loop.
2010-03-09i965: Print the offsets for WHILE and BREAK in disasm.Eric Anholt
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-09i965: Fix up VP constbuf leak on program delete.Eric Anholt
2010-03-08i965: Fix up the handling of point sprite coordinate replacement.Eric Anholt
The code was walking over the regs of pairs of attributes and checking whether the attribute with a given reg index had point sprite enabled. So the point sprite setup code was rarely even getting executed. Instead, we need to determine which channels of a reg need point sprite coordinate replacement. In addition, it was multiplying the attribute by 1/w, when it's supposed to cover (0, 1) in each direction regardless of w, and it wasn't filling in the Z and W components of the texcoord as specified. Fixes piglit point-sprite and the spriteblast demo. Bug #24431, #22245.
2010-03-06dri: drop MINIGLX_SOURCES (2)George Sapountzis
2010-03-06dri: drop MINIGLX_SOURCESGeorge Sapountzis
2010-03-05i965: Only use the effective subset of the WM sampler key.Eric Anholt
The whole structure is 836 bytes, but if only the first one or two samplers are used (as is common), the part that matters is only 56 or 108 bytes. By using just that subset as the key (since the key size is also part of the key), we improve firefox-talos-gfx performance by 1%.
2010-03-05intel: Remove support for the DRI1 TFP extension.Eric Anholt
2010-03-05i965: Remove the paths for making a const surface object for a NULL BO.Eric Anholt
2010-03-05i965: Remove the unused SDC BO pointer from the sampler state key.Eric Anholt
Since it's a BO pointer, it already lives outside the key in brw->wm.sdc_bo[] which is used for sampler state lookup and setup.
2010-03-05i965: Rename SNB brw_*_key structs to gen6_*_key structs.Eric Anholt