1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-18 22:54:15 +01:00

[dxvk] Accept VkClearValue in DxvkContext::clearImageView

This commit is contained in:
Philip Rebohle 2018-08-15 18:06:52 +02:00
parent da21a6db7f
commit beedd39f7d
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
3 changed files with 17 additions and 15 deletions

View File

@ -651,11 +651,11 @@ namespace dxvk {
} }
// Set up clear color struct // Set up clear color struct
VkClearColorValue clearValue; VkClearValue clearValue;
clearValue.uint32[0] = Values[0]; clearValue.color.uint32[0] = Values[0];
clearValue.uint32[1] = Values[1]; clearValue.color.uint32[1] = Values[1];
clearValue.uint32[2] = Values[2]; clearValue.color.uint32[2] = Values[2];
clearValue.uint32[3] = Values[3]; clearValue.color.uint32[3] = Values[3];
if (uav->GetResourceType() == D3D11_RESOURCE_DIMENSION_BUFFER) { if (uav->GetResourceType() == D3D11_RESOURCE_DIMENSION_BUFFER) {
// In case of raw and structured buffers as well as typed // In case of raw and structured buffers as well as typed
@ -693,7 +693,7 @@ namespace dxvk {
ctx->clearBufferView( ctx->clearBufferView(
cDstView, 0, cDstView, 0,
cDstView->elementCount(), cDstView->elementCount(),
cClearValue); cClearValue.color);
}); });
} }
} else { } else {
@ -729,11 +729,11 @@ namespace dxvk {
if (uav == nullptr) if (uav == nullptr)
return; return;
VkClearColorValue clearValue; VkClearValue clearValue;
clearValue.float32[0] = Values[0]; clearValue.color.float32[0] = Values[0];
clearValue.float32[1] = Values[1]; clearValue.color.float32[1] = Values[1];
clearValue.float32[2] = Values[2]; clearValue.color.float32[2] = Values[2];
clearValue.float32[3] = Values[3]; clearValue.color.float32[3] = Values[3];
if (uav->GetResourceType() == D3D11_RESOURCE_DIMENSION_BUFFER) { if (uav->GetResourceType() == D3D11_RESOURCE_DIMENSION_BUFFER) {
EmitCs([ EmitCs([
@ -743,7 +743,7 @@ namespace dxvk {
ctx->clearBufferView( ctx->clearBufferView(
cDstView, 0, cDstView, 0,
cDstView->elementCount(), cDstView->elementCount(),
cClearValue); cClearValue.color);
}); });
} else { } else {
EmitCs([ EmitCs([
@ -799,6 +799,7 @@ namespace dxvk {
}); });
} }
void STDMETHODCALLTYPE D3D11DeviceContext::ClearView( void STDMETHODCALLTYPE D3D11DeviceContext::ClearView(
ID3D11View* pView, ID3D11View* pView,
const FLOAT Color[4], const FLOAT Color[4],
@ -807,6 +808,7 @@ namespace dxvk {
Logger::err("D3D11DeviceContext::ClearView: not implemented"); Logger::err("D3D11DeviceContext::ClearView: not implemented");
} }
void STDMETHODCALLTYPE D3D11DeviceContext::GenerateMips(ID3D11ShaderResourceView* pShaderResourceView) { void STDMETHODCALLTYPE D3D11DeviceContext::GenerateMips(ID3D11ShaderResourceView* pShaderResourceView) {
auto view = static_cast<D3D11ShaderResourceView*>(pShaderResourceView); auto view = static_cast<D3D11ShaderResourceView*>(pShaderResourceView);

View File

@ -531,7 +531,7 @@ namespace dxvk {
const Rc<DxvkImageView>& imageView, const Rc<DxvkImageView>& imageView,
VkOffset3D offset, VkOffset3D offset,
VkExtent3D extent, VkExtent3D extent,
VkClearColorValue value) { VkClearValue value) {
this->spillRenderPass(); this->spillRenderPass();
this->unbindComputePipeline(); this->unbindComputePipeline();
@ -565,7 +565,7 @@ namespace dxvk {
// Prepare shader arguments // Prepare shader arguments
DxvkMetaClearArgs pushArgs; DxvkMetaClearArgs pushArgs;
pushArgs.clearValue = value; pushArgs.clearValue = value.color;
pushArgs.offset = offset; pushArgs.offset = offset;
pushArgs.extent = extent; pushArgs.extent = extent;

View File

@ -244,7 +244,7 @@ namespace dxvk {
const Rc<DxvkImageView>& imageView, const Rc<DxvkImageView>& imageView,
VkOffset3D offset, VkOffset3D offset,
VkExtent3D extent, VkExtent3D extent,
VkClearColorValue value); VkClearValue value);
/** /**
* \brief Copies data from one buffer to another * \brief Copies data from one buffer to another