1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-13 19:29:14 +01:00

[dxvk] Remove old resource binding methods

This commit is contained in:
Philip Rebohle 2022-08-03 22:45:02 +02:00
parent 37337dd4a6
commit 67c11e63e6
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99

View File

@ -86,26 +86,6 @@ namespace dxvk {
* and binds it using \c bindFramebuffer.
* \param [in] targets Render targets to bind
*/
void bindRenderTargets(
const DxvkRenderTargets& targets) {
// Set up default render pass ops
m_state.om.renderTargets = targets;
this->resetRenderPassOps(
m_state.om.renderTargets,
m_state.om.renderPassOps);
if (!m_state.om.framebufferInfo.hasTargets(targets)) {
// Create a new framebuffer object next
// time we start rendering something
m_flags.set(DxvkContextFlag::GpDirtyFramebuffer);
} else {
// Don't redundantly spill the render pass if
// the same render targets are bound again
m_flags.clr(DxvkContextFlag::GpDirtyFramebuffer);
}
}
void bindRenderTargets(
DxvkRenderTargets&& targets) {
// Set up default render pass ops
@ -134,15 +114,6 @@ namespace dxvk {
* \param [in] argBuffer New argument buffer
* \param [in] cntBuffer New count buffer
*/
void bindDrawBuffers(
const DxvkBufferSlice& argBuffer,
const DxvkBufferSlice& cntBuffer) {
m_state.id.argBuffer = argBuffer;
m_state.id.cntBuffer = cntBuffer;
m_flags.set(DxvkContextFlag::DirtyDrawBuffer);
}
void bindDrawBuffers(
DxvkBufferSlice&& argBuffer,
DxvkBufferSlice&& cntBuffer) {
@ -160,18 +131,6 @@ namespace dxvk {
* \param [in] buffer New index buffer
* \param [in] indexType Index type
*/
void bindIndexBuffer(
const DxvkBufferSlice& buffer,
VkIndexType indexType) {
if (!m_state.vi.indexBuffer.matchesBuffer(buffer))
m_vbTracked.clr(MaxNumVertexBindings);
m_state.vi.indexBuffer = buffer;
m_state.vi.indexType = indexType;
m_flags.set(DxvkContextFlag::GpDirtyIndexBuffer);
}
void bindIndexBuffer(
DxvkBufferSlice&& buffer,
VkIndexType indexType) {
@ -192,20 +151,6 @@ namespace dxvk {
* \param [in] slot Resource binding slot
* \param [in] buffer Buffer to bind
*/
void bindResourceBuffer(
VkShaderStageFlags stages,
uint32_t slot,
const DxvkBufferSlice& buffer) {
bool needsUpdate = !m_rc[slot].bufferSlice.matchesBuffer(buffer);
if (likely(needsUpdate))
m_rcTracked.clr(slot);
m_rc[slot].bufferSlice = buffer;
m_descriptorState.dirtyBuffers(stages);
}
void bindResourceBuffer(
VkShaderStageFlags stages,
uint32_t slot,
@ -247,21 +192,6 @@ namespace dxvk {
* \param [in] imageView Image view to bind
* \param [in] bufferView Buffer view to bind
*/
void bindResourceView(
VkShaderStageFlags stages,
uint32_t slot,
const Rc<DxvkImageView>& imageView,
const Rc<DxvkBufferView>& bufferView) {
m_rc[slot].imageView = imageView;
m_rc[slot].bufferView = bufferView;
m_rc[slot].bufferSlice = bufferView != nullptr
? bufferView->slice()
: DxvkBufferSlice();
m_rcTracked.clr(slot);
m_descriptorState.dirtyViews(stages);
}
void bindResourceView(
VkShaderStageFlags stages,
uint32_t slot,
@ -286,16 +216,6 @@ namespace dxvk {
* \param [in] slot Resource binding slot
* \param [in] sampler Sampler view to bind
*/
void bindResourceSampler(
VkShaderStageFlags stages,
uint32_t slot,
const Rc<DxvkSampler>& sampler) {
m_rc[slot].sampler = sampler;
m_rcTracked.clr(slot);
m_descriptorState.dirtyViews(stages);
}
void bindResourceSampler(
VkShaderStageFlags stages,
uint32_t slot,
@ -312,33 +232,6 @@ namespace dxvk {
* \param [in] stage Target shader stage
* \param [in] shader The shader to bind
*/
void bindShader(
VkShaderStageFlagBits stage,
const Rc<DxvkShader>& shader) {
Rc<DxvkShader>* shaderStage;
switch (stage) {
case VK_SHADER_STAGE_VERTEX_BIT: shaderStage = &m_state.gp.shaders.vs; break;
case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: shaderStage = &m_state.gp.shaders.tcs; break;
case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: shaderStage = &m_state.gp.shaders.tes; break;
case VK_SHADER_STAGE_GEOMETRY_BIT: shaderStage = &m_state.gp.shaders.gs; break;
case VK_SHADER_STAGE_FRAGMENT_BIT: shaderStage = &m_state.gp.shaders.fs; break;
case VK_SHADER_STAGE_COMPUTE_BIT: shaderStage = &m_state.cp.shaders.cs; break;
default: return;
}
*shaderStage = shader;
if (stage == VK_SHADER_STAGE_COMPUTE_BIT) {
m_flags.set(
DxvkContextFlag::CpDirtyPipelineState);
} else {
m_flags.set(
DxvkContextFlag::GpDirtyPipeline,
DxvkContextFlag::GpDirtyPipelineState);
}
}
void bindShader(
VkShaderStageFlagBits stage,
Rc<DxvkShader>&& shader) {
@ -389,18 +282,6 @@ namespace dxvk {
* \param [in] buffer New vertex buffer
* \param [in] stride Stride between vertices
*/
void bindVertexBuffer(
uint32_t binding,
const DxvkBufferSlice& buffer,
uint32_t stride) {
if (!m_state.vi.vertexBuffers[binding].matchesBuffer(buffer))
m_vbTracked.clr(binding);
m_state.vi.vertexBuffers[binding] = buffer;
m_state.vi.vertexStrides[binding] = stride;
m_flags.set(DxvkContextFlag::GpDirtyVertexBuffers);
}
void bindVertexBuffer(
uint32_t binding,
DxvkBufferSlice&& buffer,
@ -420,19 +301,6 @@ namespace dxvk {
* \param [in] buffer The buffer to bind
* \param [in] counter Xfb counter buffer
*/
void bindXfbBuffer(
uint32_t binding,
const DxvkBufferSlice& buffer,
const DxvkBufferSlice& counter) {
if (!m_state.xfb.buffers [binding].matches(buffer)
|| !m_state.xfb.counters[binding].matches(counter)) {
m_state.xfb.buffers [binding] = buffer;
m_state.xfb.counters[binding] = counter;
m_flags.set(DxvkContextFlag::GpDirtyXfbBuffers);
}
}
void bindXfbBuffer(
uint32_t binding,
DxvkBufferSlice&& buffer,