mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-20 19:54:19 +01:00
[hud] Don't create uniform buffer
No longer used.
This commit is contained in:
parent
9c6ff95bb6
commit
13d2479ecf
@ -7,7 +7,6 @@ namespace dxvk::hud {
|
||||
Hud::Hud(
|
||||
const Rc<DxvkDevice>& device)
|
||||
: m_device (device),
|
||||
m_uniformBuffer (createUniformBuffer()),
|
||||
m_renderer (device) {
|
||||
// Set up constant state
|
||||
m_rsState.polygonMode = VK_POLYGON_MODE_FILL;
|
||||
@ -57,11 +56,7 @@ namespace dxvk::hud {
|
||||
const Rc<DxvkContext>& ctx,
|
||||
VkSurfaceFormatKHR surfaceFormat,
|
||||
VkExtent2D surfaceSize) {
|
||||
m_uniformData.surfaceSize = surfaceSize;
|
||||
|
||||
this->updateUniformBuffer(ctx, m_uniformData);
|
||||
|
||||
this->setupRendererState(ctx, surfaceFormat);
|
||||
this->setupRendererState(ctx, surfaceFormat, surfaceSize);
|
||||
this->renderHudElements(ctx);
|
||||
this->resetRendererState(ctx);
|
||||
}
|
||||
@ -74,17 +69,15 @@ namespace dxvk::hud {
|
||||
|
||||
void Hud::setupRendererState(
|
||||
const Rc<DxvkContext>& ctx,
|
||||
VkSurfaceFormatKHR surfaceFormat) {
|
||||
VkSurfaceFormatKHR surfaceFormat,
|
||||
VkExtent2D surfaceSize) {
|
||||
bool isSrgb = imageFormatInfo(surfaceFormat.format)->flags.test(DxvkFormatFlag::ColorSpaceSrgb);
|
||||
|
||||
ctx->setRasterizerState(m_rsState);
|
||||
ctx->setBlendMode(0, m_blendMode);
|
||||
|
||||
ctx->bindResourceBuffer(0,
|
||||
DxvkBufferSlice(m_uniformBuffer));
|
||||
|
||||
ctx->setSpecConstant(VK_PIPELINE_BIND_POINT_GRAPHICS, 0, isSrgb);
|
||||
m_renderer.beginFrame(ctx, m_uniformData.surfaceSize);
|
||||
m_renderer.beginFrame(ctx, surfaceSize);
|
||||
}
|
||||
|
||||
|
||||
@ -97,26 +90,4 @@ namespace dxvk::hud {
|
||||
m_hudItems.render(m_renderer);
|
||||
}
|
||||
|
||||
|
||||
void Hud::updateUniformBuffer(const Rc<DxvkContext>& ctx, const HudUniformData& data) {
|
||||
auto slice = m_uniformBuffer->allocSlice();
|
||||
std::memcpy(slice.mapPtr, &data, sizeof(data));
|
||||
|
||||
ctx->invalidateBuffer(m_uniformBuffer, slice);
|
||||
}
|
||||
|
||||
|
||||
Rc<DxvkBuffer> Hud::createUniformBuffer() {
|
||||
DxvkBufferCreateInfo info;
|
||||
info.size = sizeof(HudUniformData);
|
||||
info.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
|
||||
info.stages = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
|
||||
| VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
|
||||
info.access = VK_ACCESS_UNIFORM_READ_BIT;
|
||||
|
||||
return m_device->createBuffer(info,
|
||||
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
|
||||
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -76,8 +76,6 @@ namespace dxvk::hud {
|
||||
|
||||
const Rc<DxvkDevice> m_device;
|
||||
|
||||
Rc<DxvkBuffer> m_uniformBuffer;
|
||||
|
||||
DxvkRasterizerState m_rsState;
|
||||
DxvkBlendMode m_blendMode;
|
||||
|
||||
@ -87,19 +85,14 @@ namespace dxvk::hud {
|
||||
|
||||
void setupRendererState(
|
||||
const Rc<DxvkContext>& ctx,
|
||||
VkSurfaceFormatKHR surfaceFormat);
|
||||
VkSurfaceFormatKHR surfaceFormat,
|
||||
VkExtent2D surfaceSize);
|
||||
|
||||
void resetRendererState(
|
||||
const Rc<DxvkContext>& ctx);
|
||||
|
||||
void renderHudElements(
|
||||
const Rc<DxvkContext>& ctx);
|
||||
|
||||
void updateUniformBuffer(
|
||||
const Rc<DxvkContext>& ctx,
|
||||
const HudUniformData& data);
|
||||
|
||||
Rc<DxvkBuffer> createUniformBuffer();
|
||||
|
||||
};
|
||||
|
||||
|
@ -208,11 +208,6 @@ namespace dxvk::hud {
|
||||
const SpirvCodeBuffer vsCode(hud_text_vert);
|
||||
const SpirvCodeBuffer fsCode(hud_text_frag);
|
||||
|
||||
// One shader resource: Global HUD uniform buffer
|
||||
const std::array<DxvkResourceSlot, 1> vsResources = {{
|
||||
{ 0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_IMAGE_VIEW_TYPE_MAX_ENUM },
|
||||
}};
|
||||
|
||||
// Two shader resources: Font texture and sampler
|
||||
const std::array<DxvkResourceSlot, 1> fsResources = {{
|
||||
{ 1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_IMAGE_VIEW_TYPE_2D },
|
||||
@ -220,10 +215,7 @@ namespace dxvk::hud {
|
||||
|
||||
result.vert = device->createShader(
|
||||
VK_SHADER_STAGE_VERTEX_BIT,
|
||||
vsResources.size(),
|
||||
vsResources.data(),
|
||||
{ 0x3, 0x1 },
|
||||
vsCode);
|
||||
0, nullptr, { 0x3, 0x1 }, vsCode);
|
||||
|
||||
result.frag = device->createShader(
|
||||
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||||
@ -242,22 +234,13 @@ namespace dxvk::hud {
|
||||
const SpirvCodeBuffer vsCode(hud_line_vert);
|
||||
const SpirvCodeBuffer fsCode(hud_line_frag);
|
||||
|
||||
// One shader resource: Global HUD uniform buffer
|
||||
const std::array<DxvkResourceSlot, 1> vsResources = {{
|
||||
{ 0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_IMAGE_VIEW_TYPE_MAX_ENUM },
|
||||
}};
|
||||
|
||||
result.vert = device->createShader(
|
||||
VK_SHADER_STAGE_VERTEX_BIT,
|
||||
vsResources.size(),
|
||||
vsResources.data(),
|
||||
{ 0x3, 0x1 },
|
||||
vsCode);
|
||||
0, nullptr, { 0x3, 0x1 }, vsCode);
|
||||
|
||||
result.frag = device->createShader(
|
||||
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||||
0, nullptr, { 0x1, 0x1 },
|
||||
fsCode);
|
||||
0, nullptr, { 0x1, 0x1 }, fsCode);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user