mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Added gdi32-D3DKMTQueryStatistics patchset
This commit is contained in:
parent
63eedc8289
commit
a9282e6425
@ -0,0 +1,467 @@
|
||||
From c1554852648aa2a0f2629db4424604e9b6de5414 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 23 Apr 2019 12:02:06 +1000
|
||||
Subject: [PATCH 1/2] include: Add missing D3DKMT typedefs
|
||||
|
||||
---
|
||||
include/ddk/d3dkmthk.h | 437 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 437 insertions(+)
|
||||
|
||||
diff --git a/include/ddk/d3dkmthk.h b/include/ddk/d3dkmthk.h
|
||||
index 0000b2f..ab2af52 100644
|
||||
--- a/include/ddk/d3dkmthk.h
|
||||
+++ b/include/ddk/d3dkmthk.h
|
||||
@@ -21,6 +21,8 @@
|
||||
|
||||
#include <d3dukmdt.h>
|
||||
|
||||
+#define D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX 5
|
||||
+
|
||||
typedef struct _D3DKMT_CLOSEADAPTER
|
||||
{
|
||||
D3DKMT_HANDLE hAdapter;
|
||||
@@ -45,6 +47,441 @@ typedef struct _D3DKMT_DESTROYDCFROMMEMORY
|
||||
HANDLE hBitmap;
|
||||
} D3DKMT_DESTROYDCFROMMEMORY;
|
||||
|
||||
+typedef enum _D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT
|
||||
+{
|
||||
+ D3DKMT_PreemptionAttempt = 0,
|
||||
+ D3DKMT_PreemptionAttemptSuccess = 1,
|
||||
+ D3DKMT_PreemptionAttemptMissNoCommand = 2,
|
||||
+ D3DKMT_PreemptionAttemptMissNotEnabled = 3,
|
||||
+ D3DKMT_PreemptionAttemptMissNextFence = 4,
|
||||
+ D3DKMT_PreemptionAttemptMissPagingCommand = 5,
|
||||
+ D3DKMT_PreemptionAttemptMissSplittedCommand = 6,
|
||||
+ D3DKMT_PreemptionAttemptMissFenceCommand = 7,
|
||||
+ D3DKMT_PreemptionAttemptMissRenderPendingFlip = 8,
|
||||
+ D3DKMT_PreemptionAttemptMissNotMakingProgress = 9,
|
||||
+ D3DKMT_PreemptionAttemptMissLessPriority = 10,
|
||||
+ D3DKMT_PreemptionAttemptMissRemainingQuantum = 11,
|
||||
+ D3DKMT_PreemptionAttemptMissRemainingPreemptionQuantum = 12,
|
||||
+ D3DKMT_PreemptionAttemptMissAlreadyPreempting = 13,
|
||||
+ D3DKMT_PreemptionAttemptMissGlobalBlock = 14,
|
||||
+ D3DKMT_PreemptionAttemptMissAlreadyRunning = 15,
|
||||
+ D3DKMT_PreemptionAttemptStatisticsMax
|
||||
+} D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT;
|
||||
+
|
||||
+typedef enum _D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS
|
||||
+{
|
||||
+ D3DKMT_AllocationPriorityClassMinimum,
|
||||
+ D3DKMT_AllocationPriorityClassLow,
|
||||
+ D3DKMT_AllocationPriorityClassNormal,
|
||||
+ D3DKMT_AllocationPriorityClassHigh,
|
||||
+ D3DKMT_AllocationPriorityClassMaximum,
|
||||
+ D3DKMT_MaxAllocationPriorityClass
|
||||
+} D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS;
|
||||
+
|
||||
+typedef enum _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE
|
||||
+{
|
||||
+ D3DKMT_RenderCommandBuffer,
|
||||
+ D3DKMT_DeferredCommandBuffer,
|
||||
+ D3DKMT_SystemCommandBuffer,
|
||||
+ D3DKMT_MmIoFlipCommandBuffer,
|
||||
+ D3DKMT_WaitCommandBuffer,
|
||||
+ D3DKMT_SignalCommandBuffer,
|
||||
+ D3DKMT_DeviceCommandBuffer,
|
||||
+ D3DKMT_SoftwareCommandBuffer,
|
||||
+ D3DKMT_QueuePacketTypeMax
|
||||
+} D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE;
|
||||
+
|
||||
+typedef enum _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE
|
||||
+{
|
||||
+ D3DKMT_ClientRenderBuffer,
|
||||
+ D3DKMT_ClientPagingBuffer,
|
||||
+ D3DKMT_SystemPagingBuffer,
|
||||
+ D3DKMT_SystemPreemptionBuffer,
|
||||
+ D3DKMT_DmaPacketTypeMax
|
||||
+} D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER
|
||||
+{
|
||||
+ ULONGLONG BytesFilled;
|
||||
+ ULONGLONG BytesDiscarded;
|
||||
+ ULONGLONG BytesMappedIntoAperture;
|
||||
+ ULONGLONG BytesUnmappedFromAperture;
|
||||
+ ULONGLONG BytesTransferredFromMdlToMemory;
|
||||
+ ULONGLONG BytesTransferredFromMemoryToMdl;
|
||||
+ ULONGLONG BytesTransferredFromApertureToMemory;
|
||||
+ ULONGLONG BytesTransferredFromMemoryToAperture;
|
||||
+} D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA
|
||||
+{
|
||||
+ ULONG64 TotalBytesEvictedFromProcess;
|
||||
+ ULONG64 BytesBySegmentPreference[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX];
|
||||
+} D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE
|
||||
+{
|
||||
+ ULONG NbRangesAcquired;
|
||||
+ ULONG NbRangesReleased;
|
||||
+} D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_COUNTER
|
||||
+{
|
||||
+ ULONG Count;
|
||||
+ ULONGLONG Bytes;
|
||||
+} D3DKMT_QUERYSTATISTICS_COUNTER;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_DMA_BUFFER
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER Size;
|
||||
+ ULONG AllocationListBytes;
|
||||
+ ULONG PatchLocationListBytes;
|
||||
+} D3DKMT_QUERYSTATISTICS_DMA_BUFFER;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATSTICS_LOCKS
|
||||
+{
|
||||
+ ULONG NbLocks;
|
||||
+ ULONG NbLocksWaitFlag;
|
||||
+ ULONG NbLocksDiscardFlag;
|
||||
+ ULONG NbLocksNoOverwrite;
|
||||
+ ULONG NbLocksNoReadSync;
|
||||
+ ULONG NbLocksLinearization;
|
||||
+ ULONG NbComplexLocks;
|
||||
+} D3DKMT_QUERYSTATSTICS_LOCKS;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATSTICS_ALLOCATIONS
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER Created;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER Destroyed;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER Opened;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER Closed;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER MigratedSuccess;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER MigratedFail;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER MigratedAbandoned;
|
||||
+} D3DKMT_QUERYSTATSTICS_ALLOCATIONS;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATSTICS_TERMINATIONS
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER TerminatedShared;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER TerminatedNonShared;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER DestroyedShared;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER DestroyedNonShared;
|
||||
+} D3DKMT_QUERYSTATSTICS_TERMINATIONS;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_NODE
|
||||
+{
|
||||
+ ULONG NodeId;
|
||||
+} D3DKMT_QUERYSTATISTICS_QUERY_NODE;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
|
||||
+{
|
||||
+ ULONG SegmentId;
|
||||
+} D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION
|
||||
+{
|
||||
+ ULONG PreemptionCounter[D3DKMT_PreemptionAttemptStatisticsMax];
|
||||
+} D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE
|
||||
+{
|
||||
+ ULONG VidPnSourceId;
|
||||
+} D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION
|
||||
+{
|
||||
+ ULONG PacketSubmited;
|
||||
+ ULONG PacketCompleted;
|
||||
+} D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION
|
||||
+{
|
||||
+ ULONG PacketSubmited;
|
||||
+ ULONG PacketCompleted;
|
||||
+ ULONG PacketPreempted;
|
||||
+ ULONG PacketFaulted;
|
||||
+} D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY
|
||||
+{
|
||||
+ ULONGLONG BytesAllocated;
|
||||
+ ULONGLONG BytesReserved;
|
||||
+ ULONG SmallAllocationBlocks;
|
||||
+ ULONG LargeAllocationBlocks;
|
||||
+ ULONGLONG WriteCombinedBytesAllocated;
|
||||
+ ULONGLONG WriteCombinedBytesReserved;
|
||||
+ ULONGLONG CachedBytesAllocated;
|
||||
+ ULONGLONG CachedBytesReserved;
|
||||
+ ULONGLONG SectionBytesAllocated;
|
||||
+ ULONGLONG SectionBytesReserved;
|
||||
+} D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY;
|
||||
+
|
||||
+typedef enum _D3DKMT_QUERYSTATISTICS_TYPE
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_ADAPTER,
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS,
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER,
|
||||
+ D3DKMT_QUERYSTATISTICS_SEGMENT,
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT,
|
||||
+ D3DKMT_QUERYSTATISTICS_NODE,
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_NODE,
|
||||
+ D3DKMT_QUERYSTATISTICS_VIDPNSOURCE,
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE
|
||||
+} D3DKMT_QUERYSTATISTICS_TYPE;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATSTICS_PAGING_FAULT
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER Faults;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER FaultsFirstTimeAccess;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER FaultsReclaimed;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER FaultsMigration;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER FaultsIncorrectResource;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER FaultsLostContent;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER FaultsEvicted;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER AllocationsMEM_RESET;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetSuccess;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetFail;
|
||||
+ ULONG AllocationsUnresetSuccessRead;
|
||||
+ ULONG AllocationsUnresetFailRead;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER Evictions;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPreparation;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToLock;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToClose;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPurge;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToSuspendCPUAccess;
|
||||
+} D3DKMT_QUERYSTATSTICS_PAGING_FAULT;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER
|
||||
+{
|
||||
+ ULONG NbCall;
|
||||
+ ULONG NbAllocationsReferenced;
|
||||
+ ULONG MaxNbAllocationsReferenced;
|
||||
+ ULONG NbNULLReference;
|
||||
+ ULONG NbWriteReference;
|
||||
+ ULONG NbRenamedAllocationsReferenced;
|
||||
+ ULONG NbIterationSearchingRenamedAllocation;
|
||||
+ ULONG NbLockedAllocationReferenced;
|
||||
+ ULONG NbAllocationWithValidPrepatchingInfoReferenced;
|
||||
+ ULONG NbAllocationWithInvalidPrepatchingInfoReferenced;
|
||||
+ ULONG NbDMABufferSuccessfullyPrePatched;
|
||||
+ ULONG NbPrimariesReferencesOverflow;
|
||||
+ ULONG NbAllocationWithNonPreferredResources;
|
||||
+ ULONG NbAllocationInsertedInMigrationTable;
|
||||
+} D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATSTICS_RENAMING
|
||||
+{
|
||||
+ ULONG NbAllocationsRenamed;
|
||||
+ ULONG NbAllocationsShrinked;
|
||||
+ ULONG NbRenamedBuffer;
|
||||
+ ULONG MaxRenamingListLength;
|
||||
+ ULONG NbFailuresDueToRenamingLimit;
|
||||
+ ULONG NbFailuresDueToCreateAllocation;
|
||||
+ ULONG NbFailuresDueToOpenAllocation;
|
||||
+ ULONG NbFailuresDueToLowResource;
|
||||
+ ULONG NbFailuresDueToNonRetiredLimit;
|
||||
+} D3DKMT_QUERYSTATSTICS_RENAMING;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATSTICS_PREPRATION
|
||||
+{
|
||||
+ ULONG BroadcastStall;
|
||||
+ ULONG NbDMAPrepared;
|
||||
+ ULONG NbDMAPreparedLongPath;
|
||||
+ ULONG ImmediateHighestPreparationPass;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER AllocationsTrimmed;
|
||||
+} D3DKMT_QUERYSTATSTICS_PREPRATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_MEMORY
|
||||
+{
|
||||
+ ULONGLONG TotalBytesEvicted;
|
||||
+ ULONG AllocsCommitted;
|
||||
+ ULONG AllocsResident;
|
||||
+} D3DKMT_QUERYSTATISTICS_MEMORY;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION
|
||||
+{
|
||||
+ ULONG Frame;
|
||||
+ ULONG CancelledFrame;
|
||||
+ ULONG QueuedPresent;
|
||||
+ ULONG64 Reserved[8];
|
||||
+} D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION QueuePacket[D3DKMT_QueuePacketTypeMax];
|
||||
+ D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION DmaPacket[D3DKMT_DmaPacketTypeMax];
|
||||
+} D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION
|
||||
+{
|
||||
+ LARGE_INTEGER RunningTime;
|
||||
+ ULONG ContextSwitch;
|
||||
+ D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION PreemptionStatistics;
|
||||
+ D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION PacketStatistics;
|
||||
+ ULONG64 Reserved[8];
|
||||
+} D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_NODE_INFORMATION
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION GlobalInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION SystemInformation;
|
||||
+ ULONG64 Reserved[8];
|
||||
+} D3DKMT_QUERYSTATISTICS_NODE_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION GlobalInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION SystemInformation;
|
||||
+ ULONG64 Reserved[8];
|
||||
+} D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
|
||||
+{
|
||||
+ ULONG NbSegments;
|
||||
+ ULONG NodeCount;
|
||||
+ ULONG VidPnSourceCount;
|
||||
+ ULONG VSyncEnabled;
|
||||
+ ULONG TdrDetectedCount;
|
||||
+ LONGLONG ZeroLengthDmaBuffers;
|
||||
+ ULONGLONG RestartedPeriod;
|
||||
+ D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER ReferenceDmaBuffer;
|
||||
+ D3DKMT_QUERYSTATSTICS_RENAMING Renaming;
|
||||
+ D3DKMT_QUERYSTATSTICS_PREPRATION Preparation;
|
||||
+ D3DKMT_QUERYSTATSTICS_PAGING_FAULT PagingFault;
|
||||
+ D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER PagingTransfer;
|
||||
+ D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE SwizzlingRange;
|
||||
+ D3DKMT_QUERYSTATSTICS_LOCKS Locks;
|
||||
+ D3DKMT_QUERYSTATSTICS_ALLOCATIONS Allocations;
|
||||
+ D3DKMT_QUERYSTATSTICS_TERMINATIONS Terminations;
|
||||
+ ULONG64 Reserved[8];
|
||||
+} D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_POLICY
|
||||
+{
|
||||
+ ULONGLONG PreferApertureForRead[D3DKMT_MaxAllocationPriorityClass];
|
||||
+ ULONGLONG PreferAperture[D3DKMT_MaxAllocationPriorityClass];
|
||||
+ ULONGLONG MemResetOnPaging;
|
||||
+ ULONGLONG RemovePagesFromWorkingSetOnPaging;
|
||||
+ ULONGLONG MigrationEnabled;
|
||||
+} D3DKMT_QUERYSTATISTICS_POLICY;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION
|
||||
+{
|
||||
+ ULONG NbSegments;
|
||||
+ ULONG NodeCount;
|
||||
+ ULONG VidPnSourceCount;
|
||||
+ ULONG VirtualMemoryUsage;
|
||||
+ D3DKMT_QUERYSTATISTICS_DMA_BUFFER DmaBuffer;
|
||||
+ D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA CommitmentData;
|
||||
+ D3DKMT_QUERYSTATISTICS_POLICY _Policy;
|
||||
+ ULONG64 Reserved[8];
|
||||
+} D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY
|
||||
+{
|
||||
+ ULONG AllocsCommitted;
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInP[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX];
|
||||
+ D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInNonPreferred;
|
||||
+ ULONGLONG TotalBytesEvictedDueToPreparation;
|
||||
+} D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY
|
||||
+{
|
||||
+ ULONGLONG UseMRU;
|
||||
+} D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION
|
||||
+{
|
||||
+ ULONGLONG BytesCommitted;
|
||||
+ ULONGLONG MaximumWorkingSet;
|
||||
+ ULONGLONG MinimumWorkingSet;
|
||||
+
|
||||
+ ULONG NbReferencedAllocationEvictedInPeriod;
|
||||
+
|
||||
+ D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY VideoMemory;
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY _Policy;
|
||||
+
|
||||
+ ULONG64 Reserved[8];
|
||||
+} D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
|
||||
+{
|
||||
+ ULONG NodeCount;
|
||||
+ ULONG VidPnSourceCount;
|
||||
+ D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY SystemMemory;
|
||||
+ ULONG64 Reserved[8];
|
||||
+} D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION
|
||||
+{
|
||||
+ ULONGLONG CommitLimit;
|
||||
+ ULONGLONG BytesCommitted;
|
||||
+ ULONGLONG BytesResident;
|
||||
+ D3DKMT_QUERYSTATISTICS_MEMORY Memory;
|
||||
+ ULONG Aperture;
|
||||
+ ULONGLONG TotalBytesEvictedByPriority[D3DKMT_MaxAllocationPriorityClass];
|
||||
+ ULONG64 SystemMemoryEndAddress;
|
||||
+ struct
|
||||
+ {
|
||||
+ ULONG64 PreservedDuringStandby : 1;
|
||||
+ ULONG64 PreservedDuringHibernate : 1;
|
||||
+ ULONG64 PartiallyPreservedDuringHibernate : 1;
|
||||
+ ULONG64 Reserved : 61;
|
||||
+ } PowerFlags;
|
||||
+ ULONG64 Reserved[6];
|
||||
+} D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1
|
||||
+{
|
||||
+ ULONG CommitLimit;
|
||||
+ ULONG BytesCommitted;
|
||||
+ ULONG BytesResident;
|
||||
+ D3DKMT_QUERYSTATISTICS_MEMORY Memory;
|
||||
+ ULONG Aperture;
|
||||
+ ULONGLONG TotalBytesEvictedByPriority[D3DKMT_MaxAllocationPriorityClass];
|
||||
+ ULONG64 SystemMemoryEndAddress;
|
||||
+ struct
|
||||
+ {
|
||||
+ ULONG64 PreservedDuringStandby : 1;
|
||||
+ ULONG64 PreservedDuringHibernate : 1;
|
||||
+ ULONG64 PartiallyPreservedDuringHibernate : 1;
|
||||
+ ULONG64 Reserved : 61;
|
||||
+ } PowerFlags;
|
||||
+
|
||||
+ ULONG64 Reserved[7];
|
||||
+} D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1;
|
||||
+
|
||||
+typedef union _D3DKMT_QUERYSTATISTICS_RESULT
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION AdapterInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1 SegmentInformationV1;
|
||||
+ D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION SegmentInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_NODE_INFORMATION NodeInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION VidPnSourceInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION ProcessInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION ProcessAdapterInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION ProcessSegmentInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION ProcessNodeInformation;
|
||||
+ D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION ProcessVidPnSourceInformation;
|
||||
+} D3DKMT_QUERYSTATISTICS_RESULT;
|
||||
+
|
||||
+typedef struct _D3DKMT_QUERYSTATISTICS
|
||||
+{
|
||||
+ D3DKMT_QUERYSTATISTICS_TYPE Type;
|
||||
+ LUID AdapterLuid;
|
||||
+ HANDLE hProcess;
|
||||
+ D3DKMT_QUERYSTATISTICS_RESULT QueryResult;
|
||||
+
|
||||
+ union
|
||||
+ {
|
||||
+ D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QuerySegment;
|
||||
+ D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QueryProcessSegment;
|
||||
+ D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryNode;
|
||||
+ D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryProcessNode;
|
||||
+ D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryVidPnSource;
|
||||
+ D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryProcessVidPnSource;
|
||||
+ };
|
||||
+} D3DKMT_QUERYSTATISTICS;
|
||||
+
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
--
|
||||
1.9.1
|
||||
|
@ -0,0 +1,56 @@
|
||||
From e4c38a569fe653a038d46bbf67a8d151851ea2b9 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 23 Apr 2019 13:32:56 +1000
|
||||
Subject: [PATCH 2/2] gdi32: Add D3DKMTQueryStatistics stub
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47074
|
||||
---
|
||||
dlls/gdi32/driver.c | 9 +++++++++
|
||||
dlls/gdi32/gdi32.spec | 1 +
|
||||
include/ddk/d3dkmthk.h | 1 +
|
||||
3 files changed, 11 insertions(+)
|
||||
|
||||
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c
|
||||
index 88f49a0..d2d9fd7 100644
|
||||
--- a/dlls/gdi32/driver.c
|
||||
+++ b/dlls/gdi32/driver.c
|
||||
@@ -1272,3 +1272,12 @@ NTSTATUS WINAPI D3DKMTCloseAdapter( const D3DKMT_CLOSEADAPTER *desc )
|
||||
FIXME("(%p): stub\n", desc);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
+
|
||||
+/******************************************************************************
|
||||
+ * D3DKMTCloseAdapter [GDI32.@]
|
||||
+ */
|
||||
+NTSTATUS WINAPI D3DKMTQueryStatistics(D3DKMT_QUERYSTATISTICS *stats)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", stats);
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
diff --git a/dlls/gdi32/gdi32.spec b/dlls/gdi32/gdi32.spec
|
||||
index 2d158e0..745e05e 100644
|
||||
--- a/dlls/gdi32/gdi32.spec
|
||||
+++ b/dlls/gdi32/gdi32.spec
|
||||
@@ -85,6 +85,7 @@
|
||||
@ stdcall D3DKMTDestroyDCFromMemory(ptr)
|
||||
@ stdcall D3DKMTEscape(ptr)
|
||||
@ stdcall D3DKMTOpenAdapterFromHdc(ptr)
|
||||
+@ stdcall D3DKMTQueryStatistics(ptr)
|
||||
@ stdcall DPtoLP(long ptr long)
|
||||
@ stdcall DeleteColorSpace(long)
|
||||
@ stdcall DeleteDC(long)
|
||||
diff --git a/include/ddk/d3dkmthk.h b/include/ddk/d3dkmthk.h
|
||||
index ab2af52..2ce2c6c 100644
|
||||
--- a/include/ddk/d3dkmthk.h
|
||||
+++ b/include/ddk/d3dkmthk.h
|
||||
@@ -490,6 +490,7 @@ extern "C"
|
||||
NTSTATUS WINAPI D3DKMTCloseAdapter(const D3DKMT_CLOSEADAPTER *desc);
|
||||
NTSTATUS WINAPI D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY *desc);
|
||||
NTSTATUS WINAPI D3DKMTDestroyDCFromMemory(const D3DKMT_DESTROYDCFROMMEMORY *desc);
|
||||
+NTSTATUS WINAPI D3DKMTQueryStatistics(D3DKMT_QUERYSTATISTICS *stats);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
1
patches/gdi32-D3DKMTQueryStatistics/definition
Normal file
1
patches/gdi32-D3DKMTQueryStatistics/definition
Normal file
@ -0,0 +1 @@
|
||||
Fixes: [47074] gdi32: Add D3DKMTQueryStatistics stub
|
@ -146,6 +146,7 @@ patch_enable_all ()
|
||||
enable_explorer_Video_Registry_Key="$1"
|
||||
enable_fonts_Missing_Fonts="$1"
|
||||
enable_fsutil_Stub_Program="$1"
|
||||
enable_gdi32_D3DKMTQueryStatistics="$1"
|
||||
enable_gdi32_Lazy_Font_Initialization="$1"
|
||||
enable_gdi32_MultiMonitor="$1"
|
||||
enable_gdi32_rotation="$1"
|
||||
@ -574,6 +575,9 @@ patch_enable ()
|
||||
fsutil-Stub_Program)
|
||||
enable_fsutil_Stub_Program="$2"
|
||||
;;
|
||||
gdi32-D3DKMTQueryStatistics)
|
||||
enable_gdi32_D3DKMTQueryStatistics="$2"
|
||||
;;
|
||||
gdi32-Lazy_Font_Initialization)
|
||||
enable_gdi32_Lazy_Font_Initialization="$2"
|
||||
;;
|
||||
@ -3909,6 +3913,23 @@ if test "$enable_fsutil_Stub_Program" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset gdi32-D3DKMTQueryStatistics
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#47074] gdi32: Add D3DKMTQueryStatistics stub
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/gdi32/driver.c, dlls/gdi32/gdi32.spec, include/ddk/d3dkmthk.h
|
||||
# |
|
||||
if test "$enable_gdi32_D3DKMTQueryStatistics" -eq 1; then
|
||||
patch_apply gdi32-D3DKMTQueryStatistics/0001-include-Add-missing-D3DKMT-typedefs.patch
|
||||
patch_apply gdi32-D3DKMTQueryStatistics/0002-gdi32-Add-D3DKMTQueryStatistics-stub.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add missing D3DKMT typedefs.", 1 },';
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "gdi32: Add D3DKMTQueryStatistics stub.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset gdi32-Lazy_Font_Initialization
|
||||
# |
|
||||
# | Modified files:
|
||||
|
Loading…
x
Reference in New Issue
Block a user