Frediano,
I have two small patches (MR!1 and MR!3) to address the issue I documented in Issue #4. If these patches do not work, I am asking that you choose one of the following at this point:
Attached is the patch file as created by "git format-patch". In reading the documentation, git format-patch warns of the many problems using all the email clients that I use. And, frankly, I do not want to figure out how to avoid these pitfalls.
This is becoming increasing difficult to submit such simple patches. To contribute,
- I have had to subscribe to Gitlab (I am a Github user).
- In using the WebIDE, it created a change set involving the whole file because it replaced the Windows EOL sequence with the UNIX EOL sequence.
- I created Merge Requests but was directed to provide patches.
- In providing patches, I was instructed to use "git format-patch" versus "git diff".
I understand that you have a development process (I have since read your Developers page). That understood, I don't intend to contribute beyond the fixing of the bugs that I have discovered and attempted to rectify. I am Linux developer and do not have a Windows build environment. (I had a colleague test the compile on Windows 10.)
I have two small patches (MR!1 and MR!3) to address the issue I documented in Issue #4. If these patches do not work, I am asking that you choose one of the following at this point:
- Use the Merge Requests already in your repo;
- Use the diff patches as a seed into your development process;
I would also like someone to answer the questions posed in Issue #4 and also address the lack of documentation for the QXL parameters.
Thank you.
- jss
On Tue, Apr 24, 2018 at 8:01 AM, Jon Stumpf <jon.stumpf@xxxxxxxxx> wrote:
Frediano,I will this evening when I return home and after I read how to use "git format-patch".- jss--On Tue, Apr 24, 2018 at 7:00 AM, Frediano Ziglio <fziglio@xxxxxxxxxx> wrote:Jon, can you provide patches in the form of git changes?> Here is the patch for Merge Request 3 (MR!3). The WebIDE must have changed
> the end-of-line sequence as I produced this with "git diff
> --ignore-all-space".
> - jss
Instead of git diff you can use git format-patch.
Alternatively add some comment and email (I assume "Jon Stumpf" <jon.stumpf@xxxxxxxxx>)
you want to see in the git commit.
Frediano
- jss
- jss
From 6110c1141a57e6c12aa618e1fa7f019fb6027bcf Mon Sep 17 00:00:00 2001 From: jon-stumpf <jon.stumpf@xxxxxxxxx> Date: Tue, 24 Apr 2018 20:39:10 -0400 Subject: [PATCH] MR!1.patch To: spice-devel@xxxxxxxxxxxxxxxxxxxxx This is my first attempt at using "git format-patch". Jon Stumpf (1): Update QxlDod.cpp: This code appears to be a cut-and-paste of the MemorySize code directly above it. The code setting the registry key has been updated but an inappropriate comment and the previous error message remained. qxldod/QxlDod.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.7.4 From 6110c1141a57e6c12aa618e1fa7f019fb6027bcf Mon Sep 17 00:00:00 2001 From: Jon Stumpf <jon.stumpf@xxxxxxxxx> Date: Tue, 10 Apr 2018 01:28:45 +0000 Subject: [PATCH] Update QxlDod.cpp: This code appears to be a cut-and-paste of the MemorySize code directly above it. The code setting the registry key has been updated but an inappropriate comment and the previous error message remained. To: spice-devel@xxxxxxxxxxxxxxxxxxxxx --- qxldod/QxlDod.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp index 4f508bd..5fa9c9a 100755 --- a/qxldod/QxlDod.cpp +++ b/qxldod/QxlDod.cpp @@ -1982,7 +1982,7 @@ NTSTATUS QxlDod::RegisterHWInfo(_In_ ULONG Id) UNICODE_STRING ValueQxlDeviceID; RtlInitUnicodeString(&ValueQxlDeviceID, L"QxlDeviceID"); - DWORD DeviceId = Id; // BDD has no access to video memory + DWORD DeviceId = Id; Status = ZwSetValueKey(DevInstRegKeyHandle, &ValueQxlDeviceID, 0, @@ -1991,7 +1991,7 @@ NTSTATUS QxlDod::RegisterHWInfo(_In_ ULONG Id) sizeof(DeviceId)); if (!NT_SUCCESS(Status)) { - DbgPrint(TRACE_LEVEL_ERROR, ("ZwSetValueKey for MemorySize failed with Status: 0x%X\n", Status)); + DbgPrint(TRACE_LEVEL_ERROR, ("ZwSetValueKey for QxlDeviceID failed with Status: 0x%X\n", Status)); return Status; } -- 2.7.4
From b32f2a3d5a0938b41188c6b183c747f63b16d0da Mon Sep 17 00:00:00 2001 From: jon-stumpf <jon.stumpf@xxxxxxxxx> Date: Tue, 24 Apr 2018 21:10:06 -0400 Subject: [PATCH 0/3] *** SUBJECT HERE *** To: spice-devel@xxxxxxxxxxxxxxxxxxxxx This is my first attempt at using "git format-patch". Jon Stumpf (1): Update RegisterHWInfo() to take a second parameter, MemSize, so that "HardwareInformation.MemorySize" can be properly set in the Registry. qxldod/QxlDod.cpp | 14 +++++++++++--- qxldod/QxlDod.h | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) -- 2.7.4 From a212abdc9e003341c0f9d58ebf1b135ebb3ab8f3 Mon Sep 17 00:00:00 2001 From: Jon Stumpf <jon.stumpf@xxxxxxxxx> Date: Sat, 14 Apr 2018 20:59:42 +0000 Subject: [PATCH 1/3] Update RegisterHWInfo() to take a second parameter, MemSize, so that "HardwareInformation.MemorySize" can be properly set in the Registry. To: spice-devel@xxxxxxxxxxxxxxxxxxxxx --- qxldod/QxlDod.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp index 5fa9c9a..3d50a8f 100755 --- a/qxldod/QxlDod.cpp +++ b/qxldod/QxlDod.cpp @@ -189,7 +189,7 @@ NTSTATUS QxlDod::StartDevice(_In_ DXGK_START_INFO* pDxgkStartInfo, return Status; } - Status = RegisterHWInfo(m_pHWDevice->GetId()); + Status = RegisterHWInfo(m_pHWDevice->GetId(), m_DeviceInfo.SystemMemorySize); if (!NT_SUCCESS(Status)) { QXL_LOG_ASSERTION1("RegisterHWInfo failed with status 0x%X\n", @@ -1920,7 +1920,7 @@ NTSTATUS QxlDod::WriteHWInfoStr(_In_ HANDLE DevInstRegKeyHandle, _In_ PCWSTR psz return Status; } -NTSTATUS QxlDod::RegisterHWInfo(_In_ ULONG Id) +NTSTATUS QxlDod::RegisterHWInfo(_In_ ULONG Id, _In_ LARGE_INTEGER MemSize) { PAGED_CODE(); @@ -1967,7 +1967,7 @@ NTSTATUS QxlDod::RegisterHWInfo(_In_ ULONG Id) // MemorySize is a ULONG, unlike the others which are all strings UNICODE_STRING ValueNameMemorySize; RtlInitUnicodeString(&ValueNameMemorySize, L"HardwareInformation.MemorySize"); - DWORD MemorySize = 0; // BDD has no access to video memory + DWORD MemorySize = MemSize; Status = ZwSetValueKey(DevInstRegKeyHandle, &ValueNameMemorySize, 0, -- 2.7.4 From 8635f1e27bdd7d1dbdcfa7eb478b66f20f9fd0c5 Mon Sep 17 00:00:00 2001 From: Jon Stumpf <jon.stumpf@xxxxxxxxx> Date: Wed, 18 Apr 2018 02:44:33 +0000 Subject: [PATCH 2/3] Fixed reference to MemSize as LARGE_INTEGER is a structure and not an scalar. To: spice-devel@xxxxxxxxxxxxxxxxxxxxx --- qxldod/QxlDod.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp index 3d50a8f..e73a4f9 100755 --- a/qxldod/QxlDod.cpp +++ b/qxldod/QxlDod.cpp @@ -1965,9 +1965,17 @@ NTSTATUS QxlDod::RegisterHWInfo(_In_ ULONG Id, _In_ LARGE_INTEGER MemSize) } // MemorySize is a ULONG, unlike the others which are all strings + // + // Microsoft documents the value as counting megabytes, but observation + // suggests it counts bytes. For instance, to represent 512MB, set the + // value to 0x20000000, not to 0x0200. + // + // A robust implementation would check that the size in bytes, given as + // 64 bits, is not too big for representation as a DWORD! + UNICODE_STRING ValueNameMemorySize; RtlInitUnicodeString(&ValueNameMemorySize, L"HardwareInformation.MemorySize"); - DWORD MemorySize = MemSize; + DWORD MemorySize = MemSize.LowPart; Status = ZwSetValueKey(DevInstRegKeyHandle, &ValueNameMemorySize, 0, -- 2.7.4 From b32f2a3d5a0938b41188c6b183c747f63b16d0da Mon Sep 17 00:00:00 2001 From: Jon Stumpf <jon.stumpf@xxxxxxxxx> Date: Wed, 18 Apr 2018 02:48:56 +0000 Subject: [PATCH 3/3] Fixed declaration of RegisterHWInfo() to match implementation in QxlDod.cpp; To: spice-devel@xxxxxxxxxxxxxxxxxxxxx --- qxldod/QxlDod.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qxldod/QxlDod.h b/qxldod/QxlDod.h index 695b83a..dc3c9fc 100755 --- a/qxldod/QxlDod.h +++ b/qxldod/QxlDod.h @@ -837,7 +837,7 @@ private: QXL_NON_PAGED D3DDDI_VIDEO_PRESENT_SOURCE_ID FindSourceForTarget(D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId, BOOLEAN DefaultToZero); NTSTATUS IsVidPnSourceModeFieldsValid(CONST D3DKMDT_VIDPN_SOURCE_MODE* pSourceMode) const; NTSTATUS IsVidPnPathFieldsValid(CONST D3DKMDT_VIDPN_PRESENT_PATH* pPath) const; - NTSTATUS RegisterHWInfo(_In_ ULONG Id); + NTSTATUS RegisterHWInfo(_In_ ULONG Id, _In_ LARGE_INTEGER MemSize); QXL_NON_PAGED VOID VsyncTimerProc(); static QXL_NON_PAGED VOID VsyncTimerProcGate(_In_ _KDPC *dpc, _In_ PVOID context, _In_ PVOID arg1, _In_ PVOID arg2); QXL_NON_PAGED VOID IndicateVSyncInterrupt(); -- 2.7.4
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel