Skip to content

Commit

Permalink
D3D11/D3D12: fixed initialization of ext libs (regression)
Browse files Browse the repository at this point in the history
  • Loading branch information
dzhdanNV committed Jan 16, 2025
1 parent 6070c04 commit 84ed92d
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion Source/D3D11/DeviceD3D11.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ void DeviceD3D11::InitializeAmdExt(AGSContext* agsContext, bool isImported) {

// Verify
const void** functionArray = (const void**)&m_AmdExt;
const size_t functionArraySize = sizeof(m_AmdExt) / sizeof(void*);
const size_t functionArraySize = 12;
size_t i = 0;
for (; i < functionArraySize && functionArray[i] != nullptr; i++)
;
Expand Down
5 changes: 3 additions & 2 deletions Source/D3D11/SharedD3D11.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,7 @@ struct SamplePositionsState {
# include "nvapi/nvapi.h"

struct AmdExt {
Library* library;
AGSContext* context;
// Funcs first
AGS_INITIALIZE Initialize;
AGS_DEINITIALIZE Deinitialize;
AGS_DRIVEREXTENSIONSDX11_CREATEDEVICE CreateDeviceD3D11;
Expand All @@ -207,6 +206,8 @@ struct AmdExt {
AGS_DRIVEREXTENSIONSDX11_MULTIDRAWINSTANCEDINDIRECTCOUNTINDIRECT DrawIndirectCount;
AGS_DRIVEREXTENSIONSDX11_MULTIDRAWINDEXEDINSTANCEDINDIRECTCOUNTINDIRECT DrawIndexedIndirectCount;
AGS_DRIVEREXTENSIONSDX11_SETVIEWBROADCASTMASKS SetViewBroadcastMasks;
Library* library;
AGSContext* context;
bool isWrapped;

~AmdExt() {
Expand Down
4 changes: 2 additions & 2 deletions Source/D3D12/DeviceD3D12.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,7 @@ void DeviceD3D12::InitializeAmdExt(AGSContext* agsContext, bool isImported) {

// Verify
const void** functionArray = (const void**)&m_AmdExt;
const size_t functionArraySize = sizeof(m_AmdExt) / sizeof(void*);
const size_t functionArraySize = 4;
size_t i = 0;
for (; i < functionArraySize && functionArray[i] != nullptr; i++)
;
Expand Down Expand Up @@ -659,7 +659,7 @@ void DeviceD3D12::InitializePixExt() {

// Verify
const void** functionArray = (const void**)&m_Pix;
const size_t functionArraySize = sizeof(m_Pix) / sizeof(void*);
const size_t functionArraySize = 6;
size_t i = 0;
for (; i < functionArraySize && functionArray[i] != nullptr; i++)
;
Expand Down
8 changes: 5 additions & 3 deletions Source/D3D12/SharedD3D12.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,13 @@ D3D12_SHADING_RATE_COMBINER GetShadingRateCombiner(ShadingRateCombiner shadingRa
# include "nvapi/nvapi.h"

struct AmdExt {
Library* library;
AGSContext* context;
// Funcs first
AGS_INITIALIZE Initialize;
AGS_DEINITIALIZE Deinitialize;
AGS_DRIVEREXTENSIONSDX12_CREATEDEVICE CreateDeviceD3D12;
AGS_DRIVEREXTENSIONSDX12_DESTROYDEVICE DestroyDeviceD3D12;
Library* library;
AGSContext* context;
bool isWrapped;

~AmdExt() {
Expand Down Expand Up @@ -126,13 +127,14 @@ typedef HRESULT(WINAPI* PIX_ENDEVENTONCOMMANDQUEUE)(ID3D12CommandQueue* commandQ
typedef HRESULT(WINAPI* PIX_SETMARKERONCOMMANDQUEUE)(ID3D12CommandQueue* commandQueue, UINT64 color, _In_ PCSTR formatString);

struct PixExt {
Library* library;
// Funcs first
PIX_BEGINEVENTONCOMMANDLIST BeginEventOnCommandList;
PIX_ENDEVENTONCOMMANDLIST EndEventOnCommandList;
PIX_SETMARKERONCOMMANDLIST SetMarkerOnCommandList;
PIX_BEGINEVENTONCOMMANDQUEUE BeginEventOnCommandQueue;
PIX_ENDEVENTONCOMMANDQUEUE EndEventOnCommandQueue;
PIX_SETMARKERONCOMMANDQUEUE SetMarkerOnCommandQueue;
Library* library;

~PixExt() {
if (library)
Expand Down

0 comments on commit 84ed92d

Please sign in to comment.