Don't disable acceleration on 830/845g by default
Run the risk of a GPU hang (it shouldn't endanger the entire machine normally) and let the user elect to disable it through Option "NoAccel" "true" Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
3d45f0affe
commit
0fd680ff52
|
|
@ -390,18 +390,9 @@ static Bool can_accelerate_blt(struct intel_screen_private *intel)
|
|||
if (INTEL_INFO(intel)->gen == -1)
|
||||
return FALSE;
|
||||
|
||||
if (0 && (IS_I830(intel) || IS_845G(intel))) {
|
||||
/* These pair of i8xx chipsets have a crippling erratum
|
||||
* that prevents the use of a PTE entry by the BLT
|
||||
* engine immediately following updating that
|
||||
* entry in the GATT.
|
||||
*
|
||||
* As the BLT is fundamental to our 2D acceleration,
|
||||
* and the workaround is lost in the midst of time,
|
||||
* fallback.
|
||||
*
|
||||
* XXX disabled for release as causes regressions in GL.
|
||||
*/
|
||||
if (xf86ReturnOptValBool(intel->Options, OPTION_ACCEL_DISABLE, FALSE)) {
|
||||
xf86DrvMsg(intel->scrn->scrnIndex, X_CONFIG,
|
||||
"Disabling hardware acceleration.\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "intel_options.h"
|
||||
|
||||
const OptionInfoRec intel_options[] = {
|
||||
{OPTION_ACCEL_DISABLE, "NoAccel", OPTV_BOOLEAN, {0}, 0},
|
||||
{OPTION_ACCEL_METHOD, "AccelMethod", OPTV_STRING, {0}, 0},
|
||||
{OPTION_DRI, "DRI", OPTV_BOOLEAN, {0}, 1},
|
||||
{OPTION_COLOR_KEY, "ColorKey", OPTV_INTEGER, {0}, 0},
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
*/
|
||||
|
||||
enum intel_options {
|
||||
OPTION_ACCEL_DISABLE,
|
||||
OPTION_ACCEL_METHOD,
|
||||
OPTION_DRI,
|
||||
OPTION_VIDEO_KEY,
|
||||
|
|
|
|||
|
|
@ -652,8 +652,10 @@ static bool is_hw_supported(struct kgem *kgem,
|
|||
if (kgem->gen == (unsigned)-1) /* unknown chipset, assume future gen */
|
||||
return kgem->has_blt;
|
||||
|
||||
if (kgem->gen <= 20) /* dynamic GTT is fubar */
|
||||
return false;
|
||||
/* Although pre-855gm the GMCH is fubar, it works mostly. So
|
||||
* let the user decide through "NoAccel" whether or not to risk
|
||||
* hw acceleration.
|
||||
*/
|
||||
|
||||
if (kgem->gen == 60 && dev->revision < 8) {
|
||||
/* pre-production SNB with dysfunctional BLT */
|
||||
|
|
|
|||
|
|
@ -439,7 +439,14 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
|
|||
return FALSE;
|
||||
|
||||
sna->info = intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo);
|
||||
|
||||
kgem_init(&sna->kgem, fd, sna->PciInfo, sna->info->gen);
|
||||
if (xf86ReturnOptValBool(sna->Options, OPTION_ACCEL_DISABLE, FALSE)) {
|
||||
xf86DrvMsg(sna->scrn->scrnIndex, X_CONFIG,
|
||||
"Disabling hardware acceleration.\n");
|
||||
sna->kgem.wedged = true;
|
||||
}
|
||||
|
||||
if (!xf86ReturnOptValBool(sna->Options,
|
||||
OPTION_RELAXED_FENCING,
|
||||
sna->kgem.has_relaxed_fencing)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue