summaryrefslogtreecommitdiff
path: root/src/sna/gen4_render.c
AgeCommit message (Collapse)Author
2012-12-04sna/gen4: Special case solids through the general vertex emitterChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-04sna/gen4: Remove unused CC viewportChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-04sna/gen4: Avoid emitting URB_FENCE across a cache-lineChris Wilson
Old erratum. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30sna: Unify gen4 acceleration againChris Wilson
After disabling render-to-Y, 965g seems just as happy with the new code paths as g4x. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30Convert generation counter to octalChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-25sna: Exploit the alpha-fixup of the BLT for texture format conversionsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23sna/gen4: Revert changes to 965g[m]Chris Wilson
The changes tested on g45/gm45 prove to be highly unstable on 965gm, suggesting a radical difference in the nature of the bugs between the two generations. In theory, g4x has additional features that could be exploited over and above gen4 which may prove interesting in the future. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23sna/gen4: Don't force a flush for the dirty target if the we do not read backChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23sna/gen4: Set composite op before testing for a BLT compatible opChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23sna/gen4: Pass the mask channel explicitly rather than through a dummy maskChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23sna/gen4: Reduce the flush before performing the CA passChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23sna/gen4: Update render fill routines to use the dummy maskChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23sna/gen4: Move the flush from inside the spans to emit_state()Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23sna/gen4: Backport the more efficient composite box emittersChris Wilson
Now that we aren't flushing after every single rectangle, we can strive for a little efficiency. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23sna/gen4: Use a dummy white mask to avoid the flush w/a when compositingChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-21sna/gen3+: Clear the render.vbo when replacing it for vertex uploadChris Wilson
As we may trigger a flush and a retire when searching for a vertex buffer for the new vertices, we need to be careful to decouple the destroyed vbo in order to avoid a use-after-free when inspecting the state. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-13sna/gen4: Tidy emission of opacity vertex attributeChris Wilson
Just make it more consistent between the various emitters Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-13sna/gen4: Do not prefer inplace non-rectilinear spansChris Wilson
As gen4 requires the per-rectangle vertex flush, emitting spans on the GPU is inefficient and so we prefer to composite the mask instead. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-13sna/gen4: Always initialise redirectChris Wilson
Do not assume the caller cleared the composite-op structure for us. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-09sna/gen4: Only 965gm suffers the !snoop restrictionChris Wilson
So fixup the bogus assertion for g4x Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-06sna/gen4: opacity spans requires the per-rectangle flush w/aChris Wilson
Note that this is worsened, but not caused, by: commit e1a63de8991a6586b83c06bcb3369208871cf43d Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Nov 2 09:10:32 2012 +0000 sna/gen4+: Prefer GPU spans if the destination is active References: https://bugs.freedesktop.org/show_bug.cgi?id=55500 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-06sna/gen4: Remove a couple of old, now redundant, w/a flushesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-06sna/gen4: Flush after pipelined pointer updates (inverted logic!)Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-02sna/gen4+: Prefer GPU spans if the destination is activeChris Wilson
Trying to avoid using the inplace scanline rasteriser for large shapes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-01sna: Try to reduce ping-pong migration for intermixed render/legacy code pathsChris Wilson
References: https://bugs.freedesktop.org/show_bug.cgi?id=56591 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-10-18sna/gen4: Presume we need a flush upon state change similar to gen5+Chris Wilson
References: https://bugs.freedesktop.org/show_bug.cgi?id=55627 References: https://bugs.freedesktop.org/show_bug.cgi?id=55500 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-09-13sna: Fix analysis of source extents for BLT compositeChris Wilson
After we have computed the source offset vector for the transformed source bo, we need to use that with respect to the destination rectangle to verify that the source sample is wholly within bounds. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-09-01sna/gen2+: Add the missing assertions in case the drawrect is invalidChris Wilson
Only the later gen had these useful assertions, add them to the rest just in case. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-27Revert "sna: Cleanup composite redirection after substituting the BLT"Chris Wilson
This reverts commit 5a5212117e7a73ce3fffb87c60a505a849e38c36. The clean up is in effect too early, as this is during preparation and the actual work is already being correctly done at the end.
2012-08-26sna: Cleanup composite redirection after substituting the BLTChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-26sna/gen4+: Check for allocation failure for the clear solid boChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-20sna: Trim a parameter from kgem_bo_mark_dirty() and add some assertionsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-20sna: Remove confusing is_cpu()Chris Wilson
The only real user now has its own heuristics, so convert the remaining users over to !is_gpu(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-18sna: Avoid forcing an upload for an unblittable bo unless on a fallback pathChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-11sna/gen2-5: Substitute an equivalent BLT composite operationChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-04sna/gen4: Restore the w/a flush for fill/copy as wellChris Wilson
So far, it looks like that the only one we can indeed drop is the composite with mask. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-04sna/gen4: Restore w/a flush for videoChris Wilson
One flush removal too many, keep those fingers crossed that the others do not make an unwanted return. Reported-by: Roman Jarosz <kedgedev@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53119 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-01sna/gen4: Flush not required between fill vertices, only nomaskcompositeChris Wilson
A small breakthrough... Still need to flush the primitive between state changes though. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-01sna/gen6+: Reduce floats-per-vertex for spansChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-01sna/gen4+: Implement an opacity shaderChris Wilson
Avoid the cumbersome lookup through the alpha gradient texture and simply multiply the incoming opacity value. The next step will be to reduce the number of floats required per vertex. Now that we have removed the primary user of the alpha solid cache, it may be time to retire that as well. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-31sna/gen4: Tidy debugging codeChris Wilson
Cluster the ifdefs together in the initialisation code. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-30sna/gen4: Compile basic kernels at runtimeChris Wilson
2012-07-27sna/gen4: Move the common vertex_offset==0 check into the flush()Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-27sna/gen4: Further refinement to the GT allocationChris Wilson
Still hunting for why gen4 fails utterly. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-26sna/gen4: Tweak heuristics for render/blt usageChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-26sna/gen4: Bump thread countsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21sna: s/vmap/snoop/ since we use the flag more genericallyChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21sna: Only update a buffer when it becomes dirtyChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-19sna/gen4: Hookup composite spansChris Wilson
Due to the unresolved flushing bug it is no faster (so only enable when we definitely can't do the operation inplace), however it does eliminate a chunk of CPU overhead. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-18sna/gen4+: Drop unsupported source formatsChris Wilson
Once again I've confused existence of the enum with the ability of the sampler to read that format. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>