summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-09-19sna: undef FontSetPrivate() before redefining itVille Syrjälä1-0/+1
Avoid the compiler gettings upset about us redefining FontSetPrivate(). Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-09-19sna: Shut up more compiler warnsVille Syrjälä1-0/+3
Suppress more compiler warnings. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-09-19sna: Use -Wno-clobberedVille Syrjälä1-0/+1
../src/sna/sna_composite.c:567:11: warning: variable ‘sx’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered] int16_t sx = src_x + tx - (dst->pDrawable->x + dst_x); ^~ etc. I had a quick look at a few of the cases and they seemed fine to me, so feels like gcc just being dense. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-07-24sna/dri2: Relinquish back-buffer cache on change of scanout statusChris Wilson1-3/+7
If we change scanout status (i.e. whether or not this flip chain may be presented directly on the CRTC), throwaway the previous back buffer cache as those buffers may not be suitable for presentation. Reported-by: Jiri Slaby <jirislaby@gmail.com> References: https://bugs.freedesktop.org/show_bug.cgi?id=111197 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-07-24sna/dri2: Skip asserting distinct front/back for stale swapsChris Wilson1-4/+4
If the backbuffer is stale (i.e. the client didn't call DRI2GetBuffers before swapping) the front/back bo may not be distinct. Move the assertion for a valid swap after the handling of a stale swap so that the assertions are more robust for a client error. References: https://bugs.freedesktop.org/show_bug.cgi?id=111197 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-07-24sna/dri2: Skip stale client swap before assertingChris Wilson1-4/+5
Check for a stale backbuffer (the client didn't call DRI2GetBuffers between DRI2SwapBuffers) before asserting so that we should be more resilient with asserts enabled for client errors. References: https://bugs.freedesktop.org/show_bug.cgi?id=111197 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-07-19sna: Rebalance prefer_blt to weight I915_TILING_Y higherChris Wilson6-51/+59
Mixing I915_TILING_Y and the blitter is painfully slow, so we need to take use of I915_TILING_Y into more prominent consideration and even force a ring switch in case it is being used. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-07-10sna/gen4: Deactivate CONSTANT_BUFFERChris Wilson1-0/+3
Turn off the CONSTANT_BUFFER loads as we do not use them. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-07-10sna: Support 10bpc gamma via the GAMMA_LUT crtc propertyVille Syrjälä1-39/+208
Probe the GAMMA_LUT/GAMMA_LUT_SIZE props and utilize them when the running with > 8bpc. v2: s/sna_crtc_id/__sna_crtc_id/ in DBG since we have a sna_crtc v3: Fix the vg "bluered" typo (Mario) This time I even build tested with vg support Cc: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-and-tested-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2019-07-10sna: Refactor property parsingVille Syrjälä1-19/+48
Generalize the code that parses the plane properties to be useable for crtc (or any kms object) properties as well. v2: plane 'type' prop is enum not range! Cc: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-03-01sna: Switch back to hwcursor on the next cursor updateVille Syrjälä1-14/+6
Once we've switched to using the swcursor (possibly due to the cursor ioctl failing) we currently keep using the swcursor until the modeset. That's not particularly great as the swcursor has several issues. Apart from the (presumably expected) flicker, the cursor also tends to leave horrible trails behind around dri2/3 windows (happens with tearfree at least). To avoid some of that let's try to switch back to the hwcursor a bit sooner. We can do that neatly via the convenient swcursor block handler. v2 [ickle]: Apply the restoration after the screen update is complete. v3 [vsyrjala]: Push it back to restore_swcursor and remove the fullscreen redraw -- prevents terrible flickering in v2! References: https://bugs.freedesktop.org/show_bug.cgi?id=106935 Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-01sna: Supply 64b reloc versions for threaded composite bltsChris Wilson1-2/+5
Apparently we never take this path or else it would have failed before (we don't take it as we prefer render for these chipsets). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-02-21Fix build on i686Adam Jackson1-1/+1
Presumably this only matters for i686 because amd64 implies sse2, but: BUILDSTDERR: In file included from gen4_vertex.c:34: BUILDSTDERR: gen4_vertex.c: In function 'emit_vertex': BUILDSTDERR: sna_render_inline.h:40:26: error: inlining failed in call to always_inline 'vertex_emit_2s': target specific option mismatch BUILDSTDERR: static force_inline void vertex_emit_2s(struct sna *sna, int16_t x, int16_t y) BUILDSTDERR: ^~~~~~~~~~~~~~ BUILDSTDERR: gen4_vertex.c:308:25: note: called from here BUILDSTDERR: #define OUT_VERTEX(x,y) vertex_emit_2s(sna, x,y) /* XXX assert(!too_large(x, y)); */ BUILDSTDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ BUILDSTDERR: gen4_vertex.c:360:2: note: in expansion of macro 'OUT_VERTEX' BUILDSTDERR: OUT_VERTEX(dstX, dstY); BUILDSTDERR: ^~~~~~~~~~ The bug here appears to be that emit_vertex() is declared 'sse2' but vertex_emit_2s is merely always_inline. gcc8 decides that since you said always_inline you need to have explicitly cloned it for every permutation of targets. Merely saying inline seems to do the job of cloning vertex_emit_2s as much as necessary. So to reiterate: if you say always-inline, it won't, but if you just say maybe inline, it will. Thanks gcc, that's helpful.
2019-02-20sna: Repeat udev_monitor_get_device() if interruptedChris Wilson1-1/+6
In case udev_monitor_get_device() itself does not handle being interrupted, go around the loop again. Daniel Vetter discovered this interesting quirk during igt testing of kms_leases. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-01-21sna/uxa: Fix colormap handling at screen depth 30. (v2)Mario Kleiner2-4/+11
The various clut handling functions like a setup consistent with the x-screen color depth. Otherwise we observe improper sampling in the gamma tables at depth 30. Therefore replace hard-coded bitsPerRGB = 8 by actual bits per channel scrn->rgbBits. Also use this for call to xf86HandleColormaps(). Tested for uxa and sna at depths 8, 16, 24 and 30 on IvyBridge, and tested at depth 24 and 30 that xgamma and gamma table animations work, and with measurement equipment to make sure identity gamma ramps actually are identity mappings at the output. v2: Also deal with X-Server 1.19 and earlier, which as of v1.19.6 lack a fix to color palette handling and can not deal with depths/bpc > 24/8 bpc. On < 1.20 we skip xf86HandleColormaps() setup at > 8 bpc. This disables color palette handling on such servers at > 8 bpc, but still keeps RandR gamma table handling intact. Tested on 1.19.6 and 1.20.0 to do the right thing. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-01-10sna: Switch off old outputs on topology changesChris Wilson1-0/+14
The kernel may keep the old connector id around so that userspace can gracefully switch it off, which means that on detecting a topology change (a new id for an old connector path), we must do a SetCRTC to release the old resources. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106250 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-01-10sna: fix of byteswap.h absence on bsdSergii Romantsov1-0/+10
OpenBSD, FreeBSD and NetBSD don't contains file byteswap.h. Used specifics of them. Fixes: 746ab3bb131d (sna: Added AYUV format support for textured and sprite video adapters.) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109268 CC: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com> CC: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Sergii Romantsov <sergii.romantsov@globallogic.com>
2018-12-03sna: Skip restoring a mode for link-status=bad if the crtc was idleChris Wilson1-0/+3
If we do not have a mode (and bo) enabled on the crtc, then trying to restore that bo ends up in a NULL pointer dereference. Reported-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-11-13sna: Added AYUV format support for textured and sprite video adapters.Stanislav Lisovskiy9-5/+239
v2: Renamed DRM_FORMAT_XYUV to DRM_FORMAT_XYUV8888. Added comment about AYUV byte ordering in Gstreamer. v3: Removed sna_composite_op flags related change to the separate patch. v4: Fixed review comments, done code refactoring v5: Fixed following review comments: - Fixed comment in shader code for ayuv kernel. - Fixed naming to VIDEO_AYUV_BT601/BT709 for ayuv kernels. - Removed duplicate gen9_kernel parameter, left from previous patches - Added colorspace handling for new AYUV kernel - Fixed naming of sna_copy_packed_data_ayuv to sna_copy_ayuv_data - Started using standard bswap_32 function for byte swapping in sna_copy_ayuv_data - Removed redundant code in sna_copy_ayuv_data so that it looks more neat - Fixed XVIMAGE_AYUV structure initialization to contain proper byte sequence for GST - Fixed bogus comment about subsampling for DRM_FORMAT_XYUV8888 - Fixed AYUV advertisement for all platforms - Removed unnecessary RGB888 declaration. v6: - Fixed surface format not to use alpha as supposed - Now doing byte swapping always during copy - Changed hack, required for GST to work to be at one place - Fixed invalid sampling values for XVIMAGE_AYUV - Fixed sprite format checking order and images_ayuv definition. v7: - Removed reverse_bytes bool parameter, now swapping bytes for XYUV unconditionally both for textured and sprite modes. v8: - Added gen9_images structure, in order to expose AYUV format to proper platforms. Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-11-13sna/gen9+: Split out wm_kernel from the sna_composite_op flagsStanislav Lisovskiy2-13/+23
With the extra video kernels we already ran out of bits in the flags. To tackle that let's just split out the wm_kernel to its own thing. Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-10-22sna/video/textured: Disable textured Xv for depth 8Ville Syrjälä1-0/+6
We can't output color index formats with the render engine, so let's disable the textured Xv adaptor for depth 8. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-10-22sna/video/textured: Enable textured Xv wih depth 30Ville Syrjälä1-1/+1
Texured Xv works just fine with depth 30. Allow it. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-10-22sna/video/sprite: Allow sprite Xv with depth 8 and depth 30Ville Syrjälä1-1/+1
With the colorkey setup fixed the sprite Xv adaptor works just fine with depth 30. With depth 8 there is one remaining problem with the usage of the LUT for gamma vs. C8, but that is purely a kernel issue. Let's allow both depth 8 and depth 30 with the sprite Xv adaptor. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-10-22sna/video/sprite: Fix colorkey setup for depth != 24Ville Syrjälä1-3/+49
Set up the colorkey correctly for depth != 24. For 8bpc we need to replicate the same key value into each channel, for depth 15/16 we need to mask off the unused low bits in each channel, and for depth 30 we just use the 8 msbs of each channel as the colorkey register can't hold the full 10 bits. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-10-22meson: s/debug/internal-debug/Ville Syrjälä2-2/+2
'debug' is a reserved option name since meson 0.48. So we must rename our own debug option to something else. Let's go with 'internal-debug'. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-10-19sna: Only generate a coldprobe RR probe when RandR is enabledChris Wilson3-4/+7
If Xinerama is enabled, RandR is disabled and calling into RR functions merely explode, so don't. Reported-by: Mariusz Białończyk <manio@skyboo.net> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108495 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-09-06sna: Check for incoherent writes through the GTTChris Wilson2-1/+18
Sometimes the write simply do not land until later, requiring us to be very careful in how we perform domain tracking. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2018-09-05Sync i915_pciids upto d0e062ebb3a4Chris Wilson1-68/+158
Import the kernel's i915_pciids.h, up to commit d0e062ebb3a44b56a7e672da568334c76f763552 Author: Rodrigo Vivi <rodrigo.vivi@intel.com> Date: Fri Aug 3 16:27:21 2018 -0700 drm/i915/cfl: Add a new CFL PCI ID. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-09-05Adding more Coffee Lake PCI IDsLiwei Song2-9/+40
Add more Coffeelake PCI IDs based on the following kernel patch: commit c99d7832dcd7423ba352386107118b9bd8b83158 Author: Rodrigo Vivi <rodrigo.vivi@intel.com> Date: Wed Dec 20 10:29:19 2017 -0800 drm/i915/cfl: Adding more Coffee Lake PCI IDs. Signed-off-by: Liwei Song <liwei.song@windriver.com>
2018-09-05sna: Disable the reduced flush optimisationChris Wilson1-0/+4
Deferring the flush until Mesa checks its DRI2 buffer status only works so long as Mesa is checking its DRI2 buffers. Hint, it doesn't.... Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97914 References: https://bugs.freedesktop.org/show_bug.cgi?id=52930 References: https://bugs.freedesktop.org/show_bug.cgi?id=90264 References: https://bugs.freedesktop.org/show_bug.cgi?id=101819 References: https://bugs.freedesktop.org/show_bug.cgi?id=101620 Fixes: 1f6dfc9df678 ("sna: Only flush GPU bo for a damage event") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-09-05sna: Select the correct depth for addfb in test_has_dirtyfb()Chris Wilson1-2/+2
It's 32bpp, depth 24 (for x8r8g8b8 pixel format), not 32 for everything. Just to be on the safe side, pick the more common x8r8g8b8 format. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-06-09meson: Add libdrm dependency for intel_drvVille Syrjälä1-0/+1
Looks like we need a libdrm dep on intel_drv. Build fails for me on Arch. In file included from ../src/intel_device.c:51: /usr/include/xf86drm.h:40:10: fatal error: drm.h: No such file or directory #include <drm.h> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-06-09sna/video/sprite: Remove the XV_ALWAYS_ON_TOP restriction for SKL+ scalingVille Syrjälä1-1/+1
On SKL+ the dst colorkey is enabled on the primary plane instead of the sprite plane. That means the restriction of scaling vs. keying doesn't actually apply here as we never scale the primary. So let's remove the requirement of having XV_ALWAYS_ON_TOP enabled to get hw scaling. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-05-31sna/video/sprite: Try disabling plane before giving up on colorkeyVille Syrjälä1-3/+13
When we're trying to reinstate the colorkey we might fail on account of the plane still being enable with a configuration that prevent the use of colorkey. This happens easily with NV12 since the plane scaler required by even unscaled NV12 is not compatible with colorkey. To work around the problem let's try disabling the plane first, then re-enable the colorkey, and finally we will try to re-enable the plane. The plane re-enable may fail, in which case we'll head to the GPU scaling fallback path. The cost is a flash of the colorkey when the plane blink off and then back on. Help me atomic ioctl, you're my only hope! Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-05-31sna/video/sprite: Make NV12 take the GPU scaling fallbackVille Syrjälä1-2/+10
Even unscaled NV12 needs the plane scaler on SKL+, so when unscaled NV12 setplane fails we should still take the GPU scaling fallback path. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-05-31sna/video/sprite: Add NV12 supportVille Syrjälä1-8/+49
Starting from ~KBL planes can do NV12. Let's make use that capability in the sprite Xv adaptor. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-05-31sna/video/sprite: Query planes for RGB565Ville Syrjälä3-1/+78
Not all sprite planes support RGB565. Insrtead of hardcoding which platforms have it let's ask the kernel instead. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-05-31sna/video/sprite: Add sprite planes in orderVille Syrjälä1-1/+1
On SKL+ dst color keying only works between the first sprite and the primary. We probably wante the first Xv port to be the first sprite plane so that the user gets working colorkeying for the port that is most likely to be used first. No way to get dst colorkeying with the other ports :( Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-05-31sna/video: Add XV_COLORSPACE attribute for the textured Xv adaptorVille Syrjälä24-99/+724
Allow the client to select between BT.601 and BT.709 via the XV_COLORSPACE port attribute with the textured Xv adaptor as well. Since the BT.601 coefficients are currently hardcoded in the yuv->rgb shader, let's just add a mostly duplicated shader with hardcoded BT.709 coefficients instead. Not the most elegant solution but avoids having to touch any state setup etc. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-05-31Rename current yuv->rgb shader sources to exa_wm_yuv_rgb_bt601Ville Syrjälä26-48/+48
Our current yuv->rgb shaders follow the BT.601 conversion formula. Rename the shader sources to indicate that fact. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-05-31Remove duplicate exa_wm_yuv_rgb.g5a shader sourceVille Syrjälä1-98/+1
exa_wm_yuv_rgb.g5a is identical to exa_wm_yuv_rgb.g4a. Just use a symlink intead of duplicating the whole file. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-05-12configure: Set DRI1 to autodiscoverChris Wilson1-2/+2
We only need DRI1 to support UMS on i810, but modern Xservers don't support DRI1 and the support infrastructure is no longer being shipped on some distributions. Gracefully fail if we can't compile the DRI1 code blocks for i810. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-05-02Add Coffeelake PCI IDs for U SkusLiwei Song2-0/+11
Add the Coffeelake PCI IDs based on the following kernel patch: commit d29fe702c9cb682df99146d24d06e5455f043101 Author: Anusha Srivatsa <anusha.srivatsa@intel.com> Date: Thu Jun 8 16:41:07 2017 -0700 drm/i915/cfl: Add Coffee Lake PCI IDs for U Sku. Signed-off-by: Liwei Song <liwei.song@windriver.com>
2018-05-02Add Coffeelake PCI IDs for H SkusLiwei Song2-0/+7
Add the Coffeelake PCI IDs based on the following kernel patches: commit ccfd13215fd25a0e8c28221f3acc0dcaec11cd15 Author: Anusha Srivatsa <anusha.srivatsa@intel.com> Date: Thu Jun 8 16:41:06 2017 -0700 drm/i915/cfl: Add Coffee Lake PCI IDs for H Sku. Signed-off-by: Liwei Song <liwei.song@windriver.com>
2018-04-24sna/video/sprite: Retry with GPU scaling if setplane failsVille Syrjälä1-6/+14
The kernel may reject the setplane due to eg. exceeding the max downscaling limit of the hardware. In that case let's retry the operation but let the GPU do the scaling for us. Tested on my IVB, after hacking the kernel to reject setplane which exceeds the max hw downscaling limit. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-04-24sna/video/sprite: Remove stale video->planeVille Syrjälä2-4/+0
video->plane is never populated so nuke it. Its only user can be nuked as well since all it's trying to do is turn off the plane (which fails on account plane_id being zero). We don't need to disable the plane immediately upon the setplane failure as the higher level code will end up stopping the entire port on error, and thus the plane will get disabled just fine. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-04-15sna/present: Only add the first element to the Timer queueChris Wilson1-33/+49
TimerSet scales linearly with the number of elements in the queue as it performs an insertion sort, duplicating the sorting we also perform to keep the per-crtc vblank queue in an orderly fashion. As we already maintain the ordered timeline of vblanks, we can simply queue the next when the current vblank completes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-04-13sna: Handle wedged devices during sna_crtc_redisplayChris Wilson1-4/+8
If the device is already wedged (no GPU), jump straight to the swrast path for performing the per-crtc transformations. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105420 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-04-06sna: Add some debug output for clipping in stippled_1_bltChris Wilson1-4/+10
Having just chased a bug along this path, I found the following debug helpful in a narrowing down why certain paths were chosen. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-04-06sna: Fix the relocation dword for stippled_1_bltChris Wilson1-1/+1
We were telling the kernel the correct location for it to fill the 64b relocation, but we were writing the presumed offset into the wrong pair of dwords in the batch ourselves. For the frequent case where we used a new upload buffer, the kernel would perform the fixup and correct our mistake, but if we happened to reuse a buffer then we told the gpu to source the stipple from the wrong address. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105886 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>