linux_dsm_epyc7002/drivers/gpu/drm/i915
Ben Widawsky ad1d219974 drm/i915: set ctx->initialized only after RCS
The initialized flag is used to specify a context has been initialized
and it's context is safe to load, ie. the 3d state is setup properly.
With full PPGTT, we emit the address space loads during context switch
and this currently marks a context as initialized. With full PPGTT
patches, if a client first emits a batch to !RCS, then later, RCS, the
code will mistake the context as initialized and try to reload an
uninitialized context.

1. context 1 blit // context marked as initialized, but isn't
2. context 1 render // loads random state from step 2

It is really easy to hit this with a planned upcoming patch which makes
default context reuse possible.

NOTE: This should only effect full PPGTT branches, ie. current
drm-intel-nightly.

Thanks to Chris for helping me track this down.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
[danvet: Simplify the failure scenario in the commit message according
to Chris' review a bit.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-10 08:21:51 +01:00
..
dvo_ch7xxx.c drm/i915: dvo_ch7xxx: fix vsync polarity setting 2013-07-25 16:10:22 +02:00
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c drm/i915/ns2501: Rip out the reenable hack 2013-11-04 16:32:31 +01:00
dvo_sil164.c
dvo_tfp410.c
dvo.h drm/i915: Remove unused mode_fixup() vfunc of struct intel_dvo_dev_ops 2013-09-05 21:39:59 +02:00
i915_debugfs.c drm/i915: Dump all ppgtt 2013-12-18 16:26:26 +01:00
i915_dma.c drm/i915: Drop I915_PARAM_HAS_FULL_PPGTT again 2013-12-18 17:50:29 +01:00
i915_drv.c drm/i915: Use multiple VMs -- the point of no return 2013-12-18 16:24:52 +01:00
i915_drv.h drm/i915: Add PPGTT dumper 2013-12-18 16:26:16 +01:00
i915_gem_context.c drm/i915: set ctx->initialized only after RCS 2014-01-10 08:21:51 +01:00
i915_gem_debug.c drm/i915: Fix #endif comment 2013-08-09 10:45:52 +02:00
i915_gem_dmabuf.c drm/i915: Pin pages whilst allocating for dma-buf vmap() 2013-11-29 15:51:20 +01:00
i915_gem_evict.c Merge commit drm-intel-fixes into topic/ppgtt 2013-12-18 16:23:37 +01:00
i915_gem_execbuffer.c drm/i915/ppgtt: Fix ioctl errno for "no such context" 2014-01-07 08:50:11 +01:00
i915_gem_gtt.c drm/i915: fix ppgtt dump code for DEBUG_FS=n 2014-01-10 08:21:37 +01:00
i915_gem_stolen.c Linux 3.12-rc2 2013-09-24 09:32:53 +02:00
i915_gem_tiling.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
i915_gem.c Revert "drm/i915: Do not allow buffers at offset 0" 2013-12-18 17:50:39 +01:00
i915_gpu_error.c drm/i915: Use multiple VMs -- the point of no return 2013-12-18 16:24:52 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Swap primary planes on gen2 for FBC 2013-12-04 12:09:36 +01:00
i915_reg.h drm/i915: Fix bogus FBC1 defines 2013-12-04 12:09:34 +01:00
i915_suspend.c drm/i915: do not save/restore backlight registers in KMS 2013-11-14 12:22:32 +01:00
i915_sysfs.c Merge branch 'backlight-rework' into drm-intel-next-queued 2013-11-15 10:02:39 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Add a tracepoint for using a semaphore 2013-10-01 07:45:24 +02:00
i915_ums.c drm/i915: do not save/restore backlight registers in KMS 2013-11-14 12:22:32 +01:00
intel_acpi.c ACPI: Eliminate the DEVICE_ACPI_HANDLE() macro 2013-11-14 23:17:21 +01:00
intel_bios.c i915: Use 120MHz LVDS SSC clock for gen5/gen6/gen7 2013-11-15 00:38:44 +01:00
intel_bios.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_crt.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_ddi.c Merge commit drm-intel-fixes into topic/ppgtt 2013-12-18 16:23:37 +01:00
intel_display.c Merge commit drm-intel-fixes into topic/ppgtt 2013-12-18 16:23:37 +01:00
intel_dp.c Merge commit drm-intel-fixes into topic/ppgtt 2013-12-18 16:23:37 +01:00
intel_drv.h Merge commit drm-intel-fixes into topic/ppgtt 2013-12-18 16:23:37 +01:00
intel_dsi_cmd.c drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_cmd.h drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_pll.c drm/i915: Use adjusted_mode in DSI PLL calculations 2013-09-16 23:36:38 +02:00
intel_dsi.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_dsi.h drm/i915: add VLV DSI PLL Calculations 2013-09-04 17:34:48 +02:00
intel_dvo.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_fbdev.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
intel_hdmi.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_i2c.c drm/i915/vlv: split CCK and DDR freq usage 2013-11-05 19:28:47 +01:00
intel_lvds.c drm/i915/lvds: don't restore hw state in the lid notifier for pch platforms 2013-12-02 15:08:41 +01:00
intel_modes.c
intel_opregion.c Linux 3.13-rc3 2013-12-09 09:19:14 +01:00
intel_overlay.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
intel_panel.c Merge branch 'bdw-fixes' into backlight-rework 2013-11-15 09:44:29 +01:00
intel_pm.c Merge commit drm-intel-fixes into topic/ppgtt 2013-12-18 16:23:37 +01:00
intel_ringbuffer.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
intel_ringbuffer.h drm/i915: Write RING_TAIL once per-request 2013-09-10 15:35:58 +02:00
intel_sdvo_regs.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_sdvo.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_sideband.c drm/i915/vlv: Make the vlv_dpio_read/vlv_dpio_write more PHY centric 2013-11-11 10:57:45 +01:00
intel_sprite.c drm/i915: Enable pipe gamma for sprites 2013-11-21 09:09:37 +01:00
intel_tv.c drm/i915/tv: add ->get_config callback 2013-11-18 22:24:33 +01:00
intel_uncore.c drm/i915: Get context early in execbuf 2013-12-18 15:52:42 +01:00
Kconfig i915, fbdev: Fix Kconfig typo 2013-11-21 21:59:02 +01:00
Makefile drm/i915: rename intel_fb.c to intel_fbdev.c 2013-10-11 23:37:33 +02:00