fix resize problem (reported and fixed by Sandy Stutsman

This commit is contained in:
Vadim Rozenfeld 2015-03-18 22:58:25 +11:00
parent 2317e7c1d4
commit 5f7bba4cbc
3 changed files with 7 additions and 7 deletions

View File

@ -3267,7 +3267,7 @@ NTSTATUS QxlDevice::QxlInit(DXGK_DISPLAY_INFORMATION* pDispInfo)
WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_RESET), 0); WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_RESET), 0);
CreateRings(); CreateRings();
m_RamHdr->int_mask = QXL_INTERRUPT_MASK; m_RamHdr->int_mask = ~0;
CreateMemSlots(); CreateMemSlots();
InitDeviceMemoryResources(); InitDeviceMemoryResources();
return Status; return Status;
@ -4419,8 +4419,8 @@ NTSTATUS QxlDevice::Escape(_In_ CONST DXGKARG_ESCAPE* pEscap)
return STATUS_INVALID_BUFFER_SIZE; return STATUS_INVALID_BUFFER_SIZE;
} }
custom_display = (QXLEscapeSetCustomDisplay*)pEscap->pPrivateDriverData; custom_display = (QXLEscapeSetCustomDisplay*)pEscap->pPrivateDriverData;
xres = (custom_display->xres + 3) & ~0x3; xres = custom_display->xres & ~0x3;
yres = (custom_display->yres +3) & ~0x3; yres = custom_display->yres & ~0x3;
bpp = custom_display->bpp; bpp = custom_display->bpp;
if (bpp != QXL_BPP) if (bpp != QXL_BPP)
{ {
@ -4525,7 +4525,7 @@ BOOLEAN QxlDevice::InterruptRoutine(_In_ PDXGKRNL_INTERFACE pDxgkInterface, _In_
pDxgkInterface->DxgkCbNotifyInterrupt(pDxgkInterface->DeviceHandle,&notifyInt); pDxgkInterface->DxgkCbNotifyInterrupt(pDxgkInterface->DeviceHandle,&notifyInt);
if (!pDxgkInterface->DxgkCbQueueDpc(pDxgkInterface->DeviceHandle)) { if (!pDxgkInterface->DxgkCbQueueDpc(pDxgkInterface->DeviceHandle)) {
m_RamHdr->int_mask = QXL_INTERRUPT_MASK; m_RamHdr->int_mask = ~0;
WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_UPDATE_IRQ), 0); WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_UPDATE_IRQ), 0);
DbgPrint(TRACE_LEVEL_FATAL, ("---> %s DxgkCbQueueDpc failed\n", __FUNCTION__)); DbgPrint(TRACE_LEVEL_FATAL, ("---> %s DxgkCbQueueDpc failed\n", __FUNCTION__));
} }
@ -4560,7 +4560,7 @@ VOID QxlDevice::DpcRoutine(PVOID ptr)
DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s m_IoCmdEvent\n", __FUNCTION__)); DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s m_IoCmdEvent\n", __FUNCTION__));
KeSetEvent (&m_IoCmdEvent, IO_NO_INCREMENT, FALSE); KeSetEvent (&m_IoCmdEvent, IO_NO_INCREMENT, FALSE);
} }
m_RamHdr->int_mask = QXL_INTERRUPT_MASK; m_RamHdr->int_mask = ~0;
WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_UPDATE_IRQ), 0); WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_UPDATE_IRQ), 0);
DbgPrint(TRACE_LEVEL_INFORMATION, ("<--- %s\n", __FUNCTION__)); DbgPrint(TRACE_LEVEL_INFORMATION, ("<--- %s\n", __FUNCTION__));

View File

@ -424,7 +424,7 @@ public:
NTSTATUS QueryCurrentMode(PVIDEO_MODE RequestedMode); NTSTATUS QueryCurrentMode(PVIDEO_MODE RequestedMode);
NTSTATUS SetCurrentMode(ULONG Mode); NTSTATUS SetCurrentMode(ULONG Mode);
NTSTATUS GetCurrentMode(ULONG* Mode); NTSTATUS GetCurrentMode(ULONG* Mode);
ULONG GetModeCount(void) {return m_ModeCount/* - 2*/;} ULONG GetModeCount(void) {return m_ModeCount;}
NTSTATUS SetPowerState(DEVICE_POWER_STATE DevicePowerState, DXGK_DISPLAY_INFORMATION* pDispInfo); NTSTATUS SetPowerState(DEVICE_POWER_STATE DevicePowerState, DXGK_DISPLAY_INFORMATION* pDispInfo);
NTSTATUS HWInit(PCM_RESOURCE_LIST pResList, DXGK_DISPLAY_INFORMATION* pDispInfo); NTSTATUS HWInit(PCM_RESOURCE_LIST pResList, DXGK_DISPLAY_INFORMATION* pDispInfo);
NTSTATUS HWClose(void); NTSTATUS HWClose(void);

View File

@ -9,7 +9,7 @@
// Driver Entry point // Driver Entry point
// //
int nDebugLevel = TRACE_LEVEL_INFORMATION; int nDebugLevel = TRACE_LEVEL_ERROR;
extern "C" extern "C"