intel_extreme: set the "image size" register on generation 4 and below
This is undocumented, but required for GMA 945 and probably earlier devices as well. The register is reserved in later generation 4 devices, and not mentionned at all in later versions. Fixes #15655.
This commit is contained in:
@@ -235,14 +235,14 @@ Pipe::ConfigureTimings(display_mode* target, bool hardware)
|
|||||||
|
|
||||||
// Set the plane size as well while we're at it (this is independant, we
|
// Set the plane size as well while we're at it (this is independant, we
|
||||||
// could have a larger plane and scroll through it).
|
// could have a larger plane and scroll through it).
|
||||||
if (gInfo->shared_info->device_type.Generation() == 5
|
if (gInfo->shared_info->device_type.Generation() <= 4) {
|
||||||
|| gInfo->shared_info->device_type.Generation() > 6) {
|
// This is "reserved" on G35 and GMA965, but needed on 945 (for which
|
||||||
// FIXME check which generations actually need this.
|
// there is no public documentation), and I assume earlier devices as
|
||||||
// This is "reserved" on G45 and below.
|
// well. Note that the height and width are swapped when compared to
|
||||||
// This register does not exist on generation 6.
|
// the other registers.
|
||||||
write32(INTEL_DISPLAY_A_IMAGE_SIZE + fPipeOffset,
|
write32(INTEL_DISPLAY_A_IMAGE_SIZE + fPipeOffset,
|
||||||
((uint32)(target->virtual_width - 1) << 16)
|
((uint32)(target->virtual_height - 1) << 16)
|
||||||
| ((uint32)target->virtual_height - 1));
|
| ((uint32)target->virtual_width - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fHasTranscoder && hardware) {
|
if (fHasTranscoder && hardware) {
|
||||||
|
|||||||
Reference in New Issue
Block a user