summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-10-21sna: Pass a BoxRec to the fill opChris Wilson
For many of the core drawing routines, passing a BoxRec for the fill is more convenient since they already have one generated by the clip intersection. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-21sna: Check whether we can blt whilst determining the PolyLine extentsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-21sna: Speed-up blitting of unclipped linesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-21sna/damage: Stash the last freed damage for quick reallocationChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-21sna/damage: Only track the mode globallyChris Wilson
As damage accumulation is handled modally, we do not need to track the mode per elt and so attempt to simplify the code. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-20sna: Actually apply the composite offset for the self-copyChris Wilson
I translated the region to copy by the composite pixmap offset, only failed to use the translated region for the actual copy command (using instead the original boxes). Fix that mistake by avoiding the temporary region entirely and applying the translation inplace. We also have to be careful in the case of copying between two composited windows that have different offsets into the same screen pixmap. This fixes the regression introduced with a3466c8b69af (sna/accel: Implement a simpler path for CopyArea between the same pixmaps). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-20sna/dri: Perform a little dance to restore the gpu status on release of the boChris Wilson
As the bo is outside of our control whilst it is under the influence of an external renderer, we try to maintain it on the gpu so as to avoid unnecessary ping-pong. But once it is wholly back under our control, we want to stop paying the penalty for sharing it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: Reuse any partial write buffer for readbackChris Wilson
Take advantage of any available temporary buffer that we reuse for readback knowing that it is the last operation in the batch. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: Add some debug to discern the nature of the Cr fallbackChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: Clean up some debug messages for 64bitChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna/blt: Use SCANLINE_BLT for multiple fill boxesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: The initial aperture check for a set of bo is unlikely to failChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: Reset the ring flag upon idlingChris Wilson
We track the last ring used when active so as to avoid stalling between batches. Once the GPU has retired all the pending requests, we can use whichever ring is preferrable for the next operation without any danger of stalling upon submission. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: Don't rewrite the solid colour cache if it hasn't changedChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: Enlarge the minimum pixmap size to migrate for RenderChris Wilson
This is to workaround a ping-pong issue involving small icons. The horrible sequence of operations appears to use a tiled FillRect to copy from the scanout onto to a temporary pixmap, which causes us to readback from the scanout. We are destined to hit the fallback path there anyway until we implement stippling... References: https://bugs.freedesktop.org/show_bug.cgi?id=41718 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna/damage: Avoid reducing the damage for simple testsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna/gen6: Apply the unknown blitter death workaroundChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: Compute region extents in place to eliminate redundant stack spaceChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: Use the unlikely wedged() throughoutChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-19sna: Micro-optimise fill-spansChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen6: Don't modify composite arguments whilst checking for BLTChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/blt: Move the conditional out of the fill-many hotpathChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen4: Add fill-oneChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen6: Precompute floats_per_rectChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen5: Add fill-one implementationChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen6: Try continuing with the BLT if the last batch was also BLTChris Wilson
In the vain hope of reducing switching between rings and introducing stalls between batches. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen6: Micro-optimise gen6_rectangle_beginChris Wilson
We can only emit state between primitives, ergo we need only check for state updates if we've finished the vbo or are starting a new operation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen2: Precompute floats-per-rectChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen2: Prefer to use the BLTChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen3: Prefer to use the BLT where possible for composite opsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-18sna/gen3: Prefer to use the BLT to clear the scratch glyph pixmapsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna: Some more debug output for request/bo retirementChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna: Only retire the flush handler if nothing was submitted within the periodChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna/gen3: Use immediates for black/white solid sourcesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna/gen3: More removal of memset(0)Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna/gen5: Rearrange the BLT->RENDER workaroundChris Wilson
So that we can simply use the pending DRAWRECT as the non-pipelined flush required following use of a BLT command. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna: Fast path common colour conversionsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna/accel: Implement a simpler path for CopyArea between the same pixmapsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna: Improve debug output for mi/fb fallbacksChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna/gen3: Remove memset(0) from fill_boxesChris Wilson
And initialise only the state used for the operation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna/damage: Clear damage->all when subtractingChris Wilson
I missed clearing the all-damaged flag on the subtract fast paths, causing us to disregard further GPU damage and losing track of render coherency. Reported-by: Roman Jarosz <kedgedev@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41769 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17snb,ivb: Workaround unknown blitter deathChris Wilson
The first workaround was a performance killing MI_FLUSH_DW after every op. This workaround appears to be a stable compromise instead, only requiring a redundant command after every BLT command with little impact on throughput. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=27892 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39524 Tested-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna/gen3: Micro-optimise gen3_rectangle_begin()Chris Wilson
We only need to emit the vbo description either at the beginning of a new op (when the state may have changed) or after finishing a full vbo. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna/gen3: Store floats_per_rect alongside floats_per_vertexChris Wilson
Moves a multiply out of the hot path. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna/gen3: Improve reduction of render operator to bltChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17configure: Add a check for pixman versionChris Wilson
As SNA requires a fairly recent release and calls directly into pixman. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-17sna: Defer CPU fallback if fb calls into miChris Wilson
If the fb routine does not access the pixel data directly, but instead calls into an mi routine, we can defer the readback and possibly avoid it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-16sna: Prefer to accelerate non-RENDER operations if already using the GPUChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-16sna: Simplify busy tracking by trusting the bo->gpu flagChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-16sna/accel: Upload source to GPU for !copy CopyAreasChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>