summaryrefslogtreecommitdiff
path: root/src/sna/gen3_render.c
AgeCommit message (Collapse)Author
2019-09-19sna: Annotate more fall throughsVille Syrjälä
Sprinkle fall through comments where needed. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-02-07sna: Switch from ifdef PICT_ to if XORG_VERSION_CURRENTChris Wilson
The PICT_ are enums and so never report true to ifdef PICT_a2r10g10b10 and instead we need to check the xserver version they were introduced. Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-06-21sna/gen2+: Do not force migration to GPU for very large objectsChris Wilson
If the target is larger than the maximum render size, allow us not to migrate to the GPU if it is entirely damaged on the CPU. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-03sna/gen3: Add missing destination offsets to a few vertex emittersChris Wilson
Sometimes we apply a destination offset (for when the coordinates are too large to be automatically offset by the 3D pipeline). Only a few paths had forgotten to apply the aforementioned offset. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93816 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-11-11sna/video: Avoid dereferencing a masked pointerChris Wilson
First check for the damage-is-all special flag before adding to the damage. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-11-08sna/video: Move the composite offsets into the dstRegionChris Wilson
Move the application of the composite offset from the backends into the caller so that we correctly apply the offset to the dstRegion prior to calling move-to-gpu with that set of boxes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-06-24sna/gen3: Allow gen3 to use smaller vbo if already available in cacheChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-02sna/gen3: Disable fences associated with vertex buffersChris Wilson
Could gen3 actually be trying to read these through a fence? References: https://bugs.freedesktop.org/show_bug.cgi?id=89334 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-02-09sna: Convert pixel values into ARGB values for render operationsChris Wilson
When converting from a Pixmap into a Solid, we need to remember to convert from the stored pixel format into the a8r8g8b8 used by the solid fill. This was exposed by commit aef2f99d051dfa37717e5d6d6de9b548d706a520 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue Feb 3 21:31:16 2015 +0000 sna: Convert CompositeRectangles ADD white to SRC white but is a regression from commit 31a4c7bc13c5f4560482b450b9ee4788a58930cd [2.99.912] Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Apr 4 10:46:48 2014 +0100 sna/gen2+: Replace composite sources with solids where possible Reported-by: andrew@atomspring.com Reported-by: Matti Hämäläinen <ccr@tnsp.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89030 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-09-02sna: Leave more Pixmap breadcrumbs in DBGChris Wilson
Add the Pixmap id to various DBG messages to make it easier to track rendering. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-07-16sna/gen2+: Remove assertion on draw->type for fillsChris Wilson
I overlooked the tiling-fill path passing down a temporary DrawableRec into the fill_boxes callback - invalidating the assertion. Fixes regression from commit 43176b9bfafe389c4b9ed676f4e50e3b06f858c4 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Mon Jun 30 21:01:11 2014 +0100 sna/dri2: Pass around the correct DrawableRec for sampling from the foriegn bo Reported-by: Jiri Slaby <jirislaby@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70461#c62 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-30sna/dri2: Pass around the correct DrawableRec for sampling from the foriegn boChris Wilson
One day, we will move the width/height/bpp to the bo itself... Reported-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-23sna: Rename IGNORE_CPU to IGNORE_DAMAGE to better reflect its purposeChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-20sna: Mark up const boxes to keep the compiler happyChris Wilson
Pass around const to suppress a few compiler warnings. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-11sna: Silence compiler warnings for discarding const Region pointsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-05-16sna/video: Only migrate the destination windowChris Wilson
By using move-area-to-gpu and specifying that we overwrite the target area, we can optimize away any needless damage migration. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-04-15sna: Mark partial composite operations upfrontChris Wilson
Rather than guess in the backend when we are going to be called for multiple boxes, rely on the frontend declaring it correctly. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-04-04sna/gen2+: Beware the unattached ShmPixmapChris Wilson
When dereferences priv, make sure it exists first. ShmPixmaps for example, may not have one, nor do very small buffers. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-04-04sna/gen2+: Replace composite sources with solids where possibleChris Wilson
If the composite reads entirely from within a large pixmap which is a clear color, just replace the source with a solid. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-03-14sna: Allow some leeway when deciding to discard common translationsChris Wilson
Under PictFilterNearest, we can ignore fractional translations (not all renderers discard those.) And if we are being approximate, we can loosen our tolerance as well. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-03-13sna: Nullify extra fill.opsChris Wilson
I forgot that the initial memset(&fill, 0, sizeof(fill)) was no longer performed and we rely on explicit initialisation during the setup, so add the missing fields. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76088 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-01-24sna/gen3+: Allow for spill when aligning verticesChris Wilson
We need to flush the batch if we run out of space aligning our vertex buffer - but the test must anticipate the space required for the new alignment. Reported-by: Arkadiusz Miskiewicz Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-01-24sna/gen2+: Inspect composite flags to discard unneeded CPU damageChris Wilson
We can now check whether the Composite operation will require existing CPU damage and if not discard it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-01-23sna: Avoid erroneous discarding operations for partial compositesChris Wilson
Composite operations were presumed to cover their entire width x height area. However, a few paths submit boxes that do not cover the clip region and so the optimisation made during prepare to discard completely overwritten data is incorrect (and leads to corruption - stale data is seen which the client expected to have been overdrawn). So along these more unusual paths, we must add a flag to prevent the overzealous discard. Notably, xfce4 triggers this as it uses a lot of unantialiased trapezoids in its theme drawing. References: https://bugs.freedesktop.org/show_bug.cgi?id=69528 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-12-10sna/gen2,3: Replace stale bo replacement with simple assertsChris Wilson
The surface creation routines should ensure that the minimum pitch alignments are met. However, when rendering to a CPU bo, the pitch is not under our control so we need to be more careful. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-12-05sna: Compilation fixes for squeezeChris Wilson
Older version of glibc and valgrind require a slight massage. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-12-03sna/gen2,3: Unmap the old GPU bo when replacing due to render target constaintsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-11-22sna: Tidy up fallback from render composite to blt compositeChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-11-02sna: Eliminate the redundancy between is_mappable/can_mapChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-30sna: Check for wedged after submittingChris Wilson
If we submit prior to an operation, check that we didn't just wedge the GPU. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-10sna: Pass usage hint down to render fill routinesChris Wilson
For the scanlines emitted for rendering Core drawing primitives, it is preferable to use the BLT engine, so pass those hints down. Reported-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-09sna/gen3+: Flush vertex buffer after computing resizeChris Wilson
Upon aligning the buffer, we may enlarge the vbo to accomodate the vertex alignment and push the current index past the end of the buffer. Move the space check from before the alignment computation to afterwards. Reported-by: Jiri Slaby <jirislaby@gmail.com> References: https://bugs.freedesktop.org/show_bug.cgi?id=47597 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-30sna/gen3: Tidy up fallback handling from fill-boxesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-25sna/gen[35]: Remove dead code for choosing between BLT/render compositeChris Wilson
For these gen, we always want to use BLT where possible - even if it incurs a context switch. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-23sna: Track CPU/GTT maps independentlyChris Wilson
Now that we use CPU mmaps to read/write to tiled X surfaces, we find ourselves frequently switching between CPU and GTT mmaps and so wish to cache both. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-18intel: Compile fixes for base install of SLED11.sp3Chris Wilson
Highlights of that distribution include xorg-xserver-1.6.5, kernel 3.0.76 and gcc-4.3. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-07-13sna: Skip copying to the intermediate target if we will completely overwrite itChris Wilson
Occasionally when forced to use an intermediate destination surface, we know that we will completely overwrite the contents of the surface and so we can forgo the initial copy from the target. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-06-28sna/gen2+: Consider precision in render operation placementChris Wilson
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66297 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-06-14sna/gen3+: Remove redundant clearing of clear hint in video playbackChris Wilson
The clear hint is correctly updated when performing the move-to-gpu and so it is being superfluously repeated by the callers. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-06-13sna/gen2+: Promote a conditional dirty into an assertionChris Wilson
If the target bo is not bound when we start to emit the composite state for the operation, we are screwed. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-28sna: Make the backend identifier more informativeChris Wilson
This is useful, for example, with the multiple gen7 variants. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-12sna/gen3: Tweak code generation for gen3_emit_composite_primitive_constant__sse2Chris Wilson
References: https://bugs.freedesktop.org/show_bug.cgi?id=62198 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-12sna/gen3: Tweak code generation for ↵Chris Wilson
gen3_emit_composite_primitive_identity_gradient__sse2 References: https://bugs.freedesktop.org/show_bug.cgi?id=62198 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-12sna/gen3: Reduce another use of transformsChris Wilson
Prefer the slightly cheaper _sna_get_transformed_scaled(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-12sna: Mark redirect proxies with a unique idChris Wilson
This helps gen3 in particular as it uses the unique_id field of a bo to detect changes in render target. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-04sna/gen3: Always prefer BLT for copiesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-04sna/gen3: Perform alpha-fixup upon copy sourcesChris Wilson
This is required for copying from depth-15 surfaces onto other depths. Reported-by: Reinis Danne Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-03sna/gen3: Correct typo in assertionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-03sna/gen3: Add some debug around rendercopies of the fbconChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-28sna/video: Correct scaling of source offsetsChris Wilson
When applying pan and zoom to a mismatched video, it would inevitably miscompute the origin and scale factors. Reported-by: Matti Hamalainen <ccr@tnsp.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61610 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>