Skip to content

Commit 951d0a3

Browse files
committed
rpcsx-gpu: use storage buffer to pass config
1 parent 2ed1c7f commit 951d0a3

File tree

3 files changed

+5
-11
lines changed

3 files changed

+5
-11
lines changed

rpcsx-gpu/Cache.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ static void fillStageBindings(VkDescriptorSetLayoutBinding *bindings,
377377
};
378378
};
379379

380-
createDescriptorBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1);
380+
createDescriptorBinding(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1);
381381
if (setIndex == 0) {
382382
createDescriptorBinding(VK_DESCRIPTOR_TYPE_SAMPLER, 16);
383383
createDescriptorBinding(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 16, 1);
@@ -836,9 +836,7 @@ Cache::Buffer Cache::Tag::getBuffer(std::uint64_t address, std::uint64_t size,
836836
auto buffer = vk::Buffer::Allocate(
837837
vk::getHostVisibleMemory(), size,
838838
VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT |
839-
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT |
840839
VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT |
841-
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT |
842840
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
843841
VK_BUFFER_USAGE_INDEX_BUFFER_BIT);
844842

@@ -869,7 +867,6 @@ Cache::Buffer Cache::Tag::getInternalHostVisibleBuffer(std::uint64_t size) {
869867
auto buffer = vk::Buffer::Allocate(vk::getHostVisibleMemory(), size,
870868
VK_BUFFER_USAGE_TRANSFER_SRC_BIT |
871869
VK_BUFFER_USAGE_TRANSFER_DST_BIT |
872-
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT |
873870
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
874871

875872
auto cached = std::make_shared<CachedBuffer>();
@@ -894,7 +891,6 @@ Cache::Buffer Cache::Tag::getInternalDeviceLocalBuffer(std::uint64_t size) {
894891
auto buffer = vk::Buffer::Allocate(vk::getDeviceLocalMemory(), size,
895892
VK_BUFFER_USAGE_TRANSFER_SRC_BIT |
896893
VK_BUFFER_USAGE_TRANSFER_DST_BIT |
897-
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT |
898894
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
899895

900896
auto cached = std::make_shared<CachedBuffer>();
@@ -1558,7 +1554,7 @@ Cache::GraphicsTag::getShader(gcn::Stage stage, const SpiShaderPgm &pgm,
15581554
.dstSet = descriptorSets[stageIndex],
15591555
.dstBinding = 0,
15601556
.descriptorCount = 1,
1561-
.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
1557+
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
15621558
.pBufferInfo = &bufferInfo,
15631559
};
15641560

@@ -1698,7 +1694,7 @@ Cache::ComputeTag::getShader(const Registers::ComputeConfig &pgm) {
16981694
.dstSet = descriptorSet,
16991695
.dstBinding = 0,
17001696
.descriptorCount = 1,
1701-
.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
1697+
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
17021698
.pBufferInfo = &bufferInfo,
17031699
};
17041700

@@ -1781,7 +1777,7 @@ Cache::Cache(Device *device, int vmId) : mDevice(device), mVmIm(vmId) {
17811777
{
17821778
VkDescriptorPoolSize descriptorPoolSizes[]{
17831779
{
1784-
.type = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
1780+
.type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
17851781
.descriptorCount = 4 * (kDescriptorSetCount * 2 / 4),
17861782
},
17871783
{

rpcsx-gpu/Cache.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ struct Cache {
8181
};
8282

8383
static constexpr std::array kDescriptorBindings = {
84-
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
84+
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
8585
VK_DESCRIPTOR_TYPE_SAMPLER,
8686
VkDescriptorType(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE + 1 * 1000),
8787
VkDescriptorType(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE + 2 * 1000),

rpcsx-gpu/lib/gcn-shader/src/SpvConverter.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -531,8 +531,6 @@ ir::Value spv::Context::createUniformBuffer(int descriptorSet, int binding,
531531
loc, blockVariable, ir::spv::Decoration::DescriptorSet(descriptorSet));
532532
annotations.createSpvDecorate(loc, blockVariable,
533533
ir::spv::Decoration::Binding(binding));
534-
annotations.createSpvDecorate(loc, blockVariable,
535-
ir::spv::Decoration::Uniform());
536534
return blockVariable;
537535
}
538536

0 commit comments

Comments
 (0)