summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965
AgeCommit message (Collapse)Author
2011-01-17i965: Fix dead pointers to fp->Parameters->ParameterValues[] after realloc.Eric Anholt
Fixes texrect-many regression with ff_fragment_shader -- as we added refs to the subsequent texcoord scaling paramters, the array got realloced to a new address while our params[] still pointed at the old location.
2011-01-16i965: add support for EXT_texture_sRGB_decodeDave Airlie
We just choose the texture format depending on the srgb decode bit for the sRGB formats. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-01-15mesa: begin implementation of GL_ARB_draw_buffers_blendBrian Paul
2011-01-14i965: Replace broken handling of dead code with an assert.Eric Anholt
This code should never have been triggered, but I often did anyway when I disabled optimization passes during debugging, then spent my time debugging that this code doesn't work.
2011-01-14i965: Add an invalidation of live intervals after register splitting.Eric Anholt
No effect, since it was called before live intervals were calculated.
2011-01-14i965: fix fbo-srgb on i965.Dave Airlie
Until we get the EXT_framebuffer_sRGB extension we should bind the sRGB formats for FBO as linear. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-01-13i965: Remove unnecessary headers.Vinson Lee
2011-01-12i965/fs: Do flat shading when appropriate.Eric Anholt
We were trying to interpolate, which would end up doing unnecessary math, and doing so on undefined values. Fixes glsl-fs-flat-color.
2011-01-12i965: Clarify when we need to (re-)calculate live intervals.Eric Anholt
The ad-hoc placement of recalculation somewhere between when they got invalidated and when they were next needed was confusing. This should clarify what's going on here.
2011-01-12i965/vs: When MOVing to produce ABS, strip negate of the operand.Eric Anholt
We were returning the negative absolute value, instead of the absolute value. Fixes glsl-vs-abs-neg.
2011-01-12i965/fs: When producing ir_unop_abs of an operand, strip negate.Eric Anholt
We were returning the negative absolute value, instead of the absolute value. Fixes glsl-fs-abs-neg.
2011-01-11i965: Tighten up the check for flow control interfering with coalescing.Eric Anholt
This greatly improves codegen for programs with flow control by allowing coalescing for all instructions at the top level, not just ones that follow the last flow control in the program.
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.