mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[d3d11] UAV prep work + cleanups
This commit is contained in:
parent
8d5a2b92f9
commit
788f275315
@ -232,7 +232,7 @@ namespace dxvk {
|
|||||||
D3D11TextureInfo textureInfo;
|
D3D11TextureInfo textureInfo;
|
||||||
|
|
||||||
if (FAILED(GetCommonTextureInfo(pResource, &textureInfo))) {
|
if (FAILED(GetCommonTextureInfo(pResource, &textureInfo))) {
|
||||||
Logger::err("D3D11DeviceContext: Cannot map a device-local image");
|
Logger::err("D3D11DeviceContext: Failed to retrieve texture info");
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +22,10 @@ namespace dxvk {
|
|||||||
using D3D11ShaderResourceBindings = std::array<
|
using D3D11ShaderResourceBindings = std::array<
|
||||||
Com<D3D11ShaderResourceView>, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT>;
|
Com<D3D11ShaderResourceView>, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT>;
|
||||||
|
|
||||||
|
|
||||||
|
using D3D11UnorderedAccessBindings = std::array<
|
||||||
|
Com<D3D11UnorderedAccessView>, D3D11_1_UAV_SLOT_COUNT>;
|
||||||
|
|
||||||
|
|
||||||
struct D3D11ContextStateVS {
|
struct D3D11ContextStateVS {
|
||||||
Com<D3D11VertexShader> shader;
|
Com<D3D11VertexShader> shader;
|
||||||
@ -68,6 +72,7 @@ namespace dxvk {
|
|||||||
D3D11ConstantBufferBindings constantBuffers;
|
D3D11ConstantBufferBindings constantBuffers;
|
||||||
D3D11SamplerBindings samplers;
|
D3D11SamplerBindings samplers;
|
||||||
D3D11ShaderResourceBindings shaderResources;
|
D3D11ShaderResourceBindings shaderResources;
|
||||||
|
D3D11UnorderedAccessBindings unorderedAccessViews;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,21 +11,6 @@
|
|||||||
#include "d3d11_texture.h"
|
#include "d3d11_texture.h"
|
||||||
#include "d3d11_view.h"
|
#include "d3d11_view.h"
|
||||||
|
|
||||||
// These were copied from d3d11.h
|
|
||||||
// For some ridiculous reason, we cannot use the structures
|
|
||||||
// directly, although others from the same header work.
|
|
||||||
typedef struct D3D11_FEATURE_DATA_THREADING {
|
|
||||||
BOOL DriverConcurrentCreates;
|
|
||||||
BOOL DriverCommandLists;
|
|
||||||
} D3D11_FEATURE_DATA_THREADING;
|
|
||||||
typedef struct D3D11_FEATURE_DATA_DOUBLES {
|
|
||||||
BOOL DoublePrecisionFloatShaderOps;
|
|
||||||
} D3D11_FEATURE_DATA_DOUBLES;
|
|
||||||
typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT {
|
|
||||||
DXGI_FORMAT InFormat;
|
|
||||||
UINT OutFormatSupport;
|
|
||||||
} D3D11_FEATURE_DATA_FORMAT_SUPPORT;
|
|
||||||
|
|
||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
D3D11Device::D3D11Device(
|
D3D11Device::D3D11Device(
|
||||||
@ -268,7 +253,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
*ppSRView = ref(new D3D11ShaderResourceView(
|
*ppSRView = ref(new D3D11ShaderResourceView(
|
||||||
this, pResource, desc, nullptr,
|
this, pResource, desc,
|
||||||
m_dxvkDevice->createImageView(
|
m_dxvkDevice->createImageView(
|
||||||
textureInfo.image, viewInfo)));
|
textureInfo.image, viewInfo)));
|
||||||
return S_OK;
|
return S_OK;
|
||||||
@ -372,7 +357,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
*ppRTView = ref(new D3D11RenderTargetView(
|
*ppRTView = ref(new D3D11RenderTargetView(
|
||||||
this, pResource, desc, nullptr,
|
this, pResource, desc,
|
||||||
m_dxvkDevice->createImageView(
|
m_dxvkDevice->createImageView(
|
||||||
textureInfo.image, viewInfo)));
|
textureInfo.image, viewInfo)));
|
||||||
return S_OK;
|
return S_OK;
|
||||||
@ -466,7 +451,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
*ppDepthStencilView = ref(new D3D11DepthStencilView(
|
*ppDepthStencilView = ref(new D3D11DepthStencilView(
|
||||||
this, pResource, desc, nullptr,
|
this, pResource, desc,
|
||||||
m_dxvkDevice->createImageView(
|
m_dxvkDevice->createImageView(
|
||||||
textureInfo.image, viewInfo)));
|
textureInfo.image, viewInfo)));
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
@ -3,3 +3,24 @@
|
|||||||
#include "../dxgi/dxgi_include.h"
|
#include "../dxgi/dxgi_include.h"
|
||||||
|
|
||||||
#include <d3d11_1.h>
|
#include <d3d11_1.h>
|
||||||
|
|
||||||
|
// This is not defined in the mingw headers
|
||||||
|
#ifndef D3D11_1_UAV_SLOT_COUNT
|
||||||
|
#define D3D11_1_UAV_SLOT_COUNT 64
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// These were copied from d3d11.h
|
||||||
|
// For some strange reason, we cannot use the structures
|
||||||
|
// directly, although others from the same header work.
|
||||||
|
typedef struct D3D11_FEATURE_DATA_THREADING {
|
||||||
|
BOOL DriverConcurrentCreates;
|
||||||
|
BOOL DriverCommandLists;
|
||||||
|
} D3D11_FEATURE_DATA_THREADING;
|
||||||
|
typedef struct D3D11_FEATURE_DATA_DOUBLES {
|
||||||
|
BOOL DoublePrecisionFloatShaderOps;
|
||||||
|
} D3D11_FEATURE_DATA_DOUBLES;
|
||||||
|
typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT {
|
||||||
|
DXGI_FORMAT InFormat;
|
||||||
|
UINT OutFormatSupport;
|
||||||
|
} D3D11_FEATURE_DATA_FORMAT_SUPPORT;
|
||||||
|
|
||||||
|
@ -26,10 +26,17 @@ namespace dxvk {
|
|||||||
D3D11Device* device,
|
D3D11Device* device,
|
||||||
ID3D11Resource* resource,
|
ID3D11Resource* resource,
|
||||||
const DescType& desc,
|
const DescType& desc,
|
||||||
const Rc<DxvkBufferView>& bufferView,
|
const Rc<DxvkBufferView>& bufferView)
|
||||||
|
: m_device(device), m_resource(resource),
|
||||||
|
m_desc(desc), m_bufferView(bufferView) { }
|
||||||
|
|
||||||
|
D3D11ResourceView(
|
||||||
|
D3D11Device* device,
|
||||||
|
ID3D11Resource* resource,
|
||||||
|
const DescType& desc,
|
||||||
const Rc<DxvkImageView>& imageView)
|
const Rc<DxvkImageView>& imageView)
|
||||||
: m_device(device), m_resource(resource), m_desc(desc),
|
: m_device(device), m_resource(resource),
|
||||||
m_bufferView(bufferView), m_imageView(imageView) { }
|
m_desc(desc), m_imageView(imageView) { }
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject) final {
|
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject) final {
|
||||||
COM_QUERY_IFACE(riid, ppvObject, IUnknown);
|
COM_QUERY_IFACE(riid, ppvObject, IUnknown);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user