summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965
AgeCommit message (Collapse)Author
2011-01-11i965: Remove dead fallback for stencil _Enabled but no stencil buffer.Eric Anholt
The _Enabled field is the thing that takes into account whether there's a stencil buffer. Tested with piglit glx-visuals-stencil.
2011-01-10i965: Use a new miptree to avoid software fallbacks due to drawing offset.Eric Anholt
When attaching a small mipmap level to an FBO, the original gen4 didn't have the bits to support rendering to it. Instead of falling back, just blit it to a new little miptree just for it, and let it get revalidated into the stack later just like any other new teximage. Bug #30365.
2011-01-10Revert "intel: Always allocate miptrees from level 0, not tObj->BaseLevel."Eric Anholt
This reverts commit 7ce6517f3ac41bf770ab39aba4509d4f535ef663. This reverts commit d60145d06d999c5c76000499e6fa9351e11d17fa. I was wrong about which generations supported baselevel adjustment -- it's just gen4, nothing earlier. This meant that i915 would have never used the mag filter when baselevel != 0. Not a severe bug, but not an intentional regression. I think we can fix the performance issue another way.
2011-01-10i965: Add #defines for HiZ and separate stencil buffer commands.Kenneth Graunke
2011-01-10i965: Add new HiZ related bits to WM_STATE.Kenneth Graunke
2011-01-10i965: Rename more #defines to 3DSTATE rather than CMD or CMD_3D.Kenneth Graunke
Again, this makes it match the documentation.
2011-01-10i965: Remove unused #defines which only contain the sub-opcode.Kenneth Graunke
Most _3DSTATE defines contain the command type, sub-type, opcode, and sub-opcode (i.e. 0x7905). These, however, contain only the sub-opcode (i.e. 0x05). Since they are inconsistent with the rest of the code and nothing uses them, simply delete them. The _3DOP and _3DCONTROL defines seemed similar, and were also unused.
2011-01-07intel: Add a vtbl hook for determining if a format is renderable.Eric Anholt
By relying on just intel_span_supports_format, some formats that aren't supported pre-gen4 were not reporting FBO incomplete. And we also complained in stderr when it happened on i915 because draw_region gets called before framebuffer completeness validation.
2011-01-07i965: Avoid double-negation of immediate values in the VS.Eric Anholt
In general, we have to negate in immediate values we pass in because the src1 negate field in the register description is in the bits3 slot that the 32-bit value is loaded into, so it's ignored by the hardware. However, the src0 negate field is in bits1, so after we'd negated the immediate value loaded in, it would also get negated through the register description. This broke this VP instruction in the position calculation in civ4: MAD TEMP[1], TEMP[1], CONST[256].zzzz, CONST[256].-y-y-y-y; Bug #30156
2011-01-06i965: Rename various gen6 #defines to match the documentation.Kenneth Graunke
This should make it easier to cross-reference the code and hardware documentation, as well as clear up any confusion on whether constants like CMD_3D_WM_STATE mean WM_STATE (pre-gen6) or 3DSTATE_WM (gen6+). This does not rename any pre-gen6 defines.
2011-01-05intel: Always allocate miptrees from level 0, not tObj->BaseLevel.Eric Anholt
BaseLevel/MaxLevel are mostly used for two things: clamping texture access for FBO rendering, and limiting the used mipmap levels when incrementally loading textures. By restricting our mipmap trees to just the current BaseLevel/MaxLevel, we caused reallocation thrashing in the common case, for a theoretical win if someone really did want just levels 2..4 or whatever of their texture object. Bug #30366
2011-01-05intel: Clarify first_level/last_level vs baselevel/maxlevel by deletion.Eric Anholt
This has always been ugly about our texture code -- object base/max level vs intel object first/last level vs image level vs miptree first/last level. We now get rid of intelObj->first_level which is just tObj->BaseLevel, and make intelObj->_MaxLevel clearly based off of tObj->_MaxLevel instead of duplicating its code (incorrectly, as image->MaxLog2 only considers width/height and not depth!)
2011-01-05i965: Simplify the renderbuffer setup code.Eric Anholt
It was quite a mess by trying to do NULL renderbuffers and real renderbuffers in the same function. This clarifies the common case of real renderbuffers.
2011-01-04i965: Add support for SRGB DXT1 formats.Eric Anholt
This makes fbo-generatemipmap-formats GL_EXT_texture_sRGB-s3tc match fbo-generatemipmap-formats GL_EXT_texture_compression_s3tc and swrast in bad DXT1_RGBA alpha=0 handling, but it means we won't unpack and repack someone's textures into uncompressed SARGB8 format.
2011-01-04i965: Use last vertex convention for quad provoking vertex on sandybridgeZhenyu Wang
Until we know how hw converts quads to polygon in beginning of 3D pipeline, for now unconditionally use last vertex convention. Fix glean/clipFlat case.
2011-01-04i965: Correct comment for gen6 fb write control message settingZhenyu Wang
Remove incorrect headless comment for gen6 fb write message. Note current SIMD16 mode has already done right for control message.
2011-01-04i965: Fix provoking vertex select in clip state for sandybridgeZhenyu Wang
Triangle fan provoking vertex for first convention should be 'vertex 1' in sandybridge clip state. Partly fix glean/clipFlat case
2010-12-28i965: Do lowering of array indexing of a vector in the FS.Eric Anholt
Fixes a regression in ember since switching to the native FS backend, and the new piglit tests glsl-fs-vec4-indexing-{2,3} for catching this.
2010-12-28i965: Fix regression in FS comparisons on original gen4 due to gen6 changes.Eric Anholt
Fixes 26 piglit cases on my GM965.
2010-12-28i965: Factor out the ir comparision to BRW_CONDITIONAL_* code.Eric Anholt
2010-12-28i965: Fix occlusion query on sandybridgeZhenyu Wang
Clear target query buffer fixed occlusion query on sandybridge. https://bugs.freedesktop.org/show_bug.cgi?id=32167
2010-12-28Revert "i965: upload multisample state for fragment program change"Zhenyu Wang
This reverts commit de6fd527a545f8344e074312544517d05573fb72. Revert this workaround as it seems the real trouble is caused by lineloop, which doesn't require GS convert on sandybridge actually.
2010-12-27i965: don't spawn GS thread for LINELOOP on SandybridgeXiang, Haihao
LINELOOP is converted to LINESTRIP at the beginning of the 3D pipeline. This fixes https://bugs.freedesktop.org/show_bug.cgi?id=32596
2010-12-27i965: Flatten if-statements beyond depth 16 on pre-gen6.Kenneth Graunke
Gen4 and Gen5 hardware can have a maximum supported nesting depth of 16. Previously, shaders with control flow nested 17 levels deep would cause a driver assertion or segmentation fault. Gen6 (Sandybridge) hardware no longer has this restriction. Fixes fd.o bug #31967.
2010-12-24i965: use align1 access mode for instructions with execSize=1 in VSXiang, Haihao
All operands must be 16-bytes aligned in aligh16 mode. This fixes l_xxx.c in oglconform.
2010-12-24i965: fix register region descriptionXiang, Haihao
This fixes brw_eu_emit.c:179: validate_reg: Assertion `width == 1' failed.
2010-12-23i965: Remove unnecessary headers.Vinson Lee
2010-12-23i965: Keep around a copy of the VS constant surface dumping code.Eric Anholt
Just like everywhere else, I never trust my constant uploads to correctly put constants in the right places, even though that's so rarely where the issue is.
2010-12-23i965: Correct the dp_read message descriptor setup on g4x.Eric Anholt
It's mostly like gen4 message descriptor setup, except that the sizes of type/control changed to be like gen5. Fixes 21 piglit cases on gm45, including the regressions in bug #32311 from increased VS constant buffer usage.
2010-12-23i965: upload multisample state for fragment program changeZhenyu Wang
This makes conformance tests stable on sandybridge D0 to track multisample state before SF/WM state.
2010-12-22i965: explicit tell header present for fb write on sandybridgeZhenyu Wang
Determine header present for fb write by msg length is not right for SIMD16 dispatch, and if there're more output attributes, header present is not easy to tell from msg length. This explicitly adds new param for fb write to say header present or not. Fixes many cases' hang and failure in GL conformance test.
2010-12-21i965: Avoid using float type for raw moves, to work around SNB issue.Eric Anholt
The SNB alt-mode math does the denorm and inf reduction even for a "raw MOV" like we do for g0 message header setup, where we are moving values that aren't actually floats. Just use UD type, where raw MOVs really are raw MOVs. Fixes glxgears since c52adfc2e1d130effea940e75690897eb5d3ceaa, but no piglit tests had regressed(!)
2010-12-16i965: Set the alternative floating point mode on gen6 VS and WM.Eric Anholt
This matches how we did the math instructions pre-gen6, though it applies to non-math as well. Fixes vp1-LIT test 2 (degenerate case: 0 ^ 0 -> 1)
2010-12-13i965: Add support for using the BLT ring on gen6.Eric Anholt
2010-12-13i965: Improve the hacks for ARB_fp scalar^scalar POW on gen6.Eric Anholt
This is still awful, but my ability to care about reworking the old backend so we can just get a temporary value into a POW is awfully low since the new backend does this all sensibly. Fixes: fp1-LIT test 1 fp1-LIT test 3 (case x < 0) fp1-POW test (exponentiation) fp-lit-mask
2010-12-13i965: Fix gl_FragCoord.z setup on gen6.Eric Anholt
Fixes glsl-bug-22603.
2010-12-13i956: Fix the old FP path fragment position setup on gen6.Eric Anholt
Fixes fp-arb-fragment-coord-conventions-none
2010-12-13i965: Fix ARL to work on gen6.Eric Anholt
RNDD isn't one of the instructions that can do conversion from execution type to destination type. Fixes glsl-vs-arrays-3.
2010-12-10i965: Put common info on converting MESA_FORMAT to BRW_FORMAT in a table.Eric Anholt
There are exceptions to the table for depth texturing or rendering to not-quite-supported formats thanks to the non-orthogonal component selection for surface formats, but it's still a lot simpler.
2010-12-10i965: support for two-sided lighting on SandybridgeXiang, Haihao
VS places color attributes together so that SF unit can fetch the right attribute according to object orientation. This fixes light issue in mesa demo geartrain, projtex.
2010-12-09i965: Add support for gen6 reladdr VS constant loading.Eric Anholt
2010-12-09i965: Add support for gen6 constant-index constant loading.Eric Anholt
2010-12-09intel: Set the swizzling for depth textures using the GL_RED depth mode.Eric Anholt
Fixes depth-tex-modes-rg.
2010-12-09i965: Silence uninitialized variable warning.Vinson Lee
Fixes this GCC warning. brw_fs.cpp: In function 'brw_reg brw_reg_from_fs_reg(fs_reg*)': brw_fs.cpp:3255: warning: 'brw_reg' may be used uninitialized in this function
2010-12-09i965: remove unused variable since brw_wm_glsl.c removal.Eric Anholt
2010-12-09i965: Set render_cache_read_write surface state bit on gen6 constant surfs.Eric Anholt
This is said to be required in the spec, even when you aren't doing writes.
2010-12-09i965: Set up the correct texture border color state struct for Ironlake.Eric Anholt
This doesn't actually fix border color on Ironlake, but it appears to be a requirement, and gen6 needs it too.
2010-12-09i965: Clean up VS constant buffer location setup.Eric Anholt
2010-12-09i965: Fix VS constants regression pre-gen6.Eric Anholt
Last minute change for gen6 with 0 used params dropped the multiply.
2010-12-08i965: Drop push-mode reladdr constant loading and always use constant_map.Eric Anholt
This eases the gen6 implementation, which can only handle up to 32 registers of constants, while likely not penalizing real apps using reladdr since all of those I've seen also end up hitting the pull constant buffer. On gen6, the constant map means that simple NV VPs fit under the 32-reg limit and now succeed. Fixes around 10 testcases.