mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-06-12 05:33:15 +00:00
Respect game brightness settings (#1559)
* `RendererVulkan` -> `Presenter` * support for Video Out gamma setting * sRGB hack removed * added post process pass to presenter * splash functionality restored
This commit is contained in:
parent
e98fab4b58
commit
3d04765a3f
21 changed files with 518 additions and 120 deletions
|
@ -125,15 +125,14 @@ ImageViewInfo::ImageViewInfo(const AmdGpu::Image& image, const Shader::ImageReso
|
|||
}
|
||||
}
|
||||
|
||||
ImageViewInfo::ImageViewInfo(const AmdGpu::Liverpool::ColorBuffer& col_buffer,
|
||||
bool is_vo_surface) noexcept {
|
||||
ImageViewInfo::ImageViewInfo(const AmdGpu::Liverpool::ColorBuffer& col_buffer) noexcept {
|
||||
const auto base_format =
|
||||
Vulkan::LiverpoolToVK::SurfaceFormat(col_buffer.info.format, col_buffer.NumFormat());
|
||||
range.base.layer = col_buffer.view.slice_start;
|
||||
range.extent.layers = col_buffer.NumSlices() - range.base.layer;
|
||||
type = range.extent.layers > 1 ? vk::ImageViewType::e2DArray : vk::ImageViewType::e2D;
|
||||
format = Vulkan::LiverpoolToVK::AdjustColorBufferFormat(
|
||||
base_format, col_buffer.info.comp_swap.Value(), is_vo_surface);
|
||||
format = Vulkan::LiverpoolToVK::AdjustColorBufferFormat(base_format,
|
||||
col_buffer.info.comp_swap.Value());
|
||||
}
|
||||
|
||||
ImageViewInfo::ImageViewInfo(const AmdGpu::Liverpool::DepthBuffer& depth_buffer,
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace VideoCore {
|
|||
struct ImageViewInfo {
|
||||
ImageViewInfo() = default;
|
||||
ImageViewInfo(const AmdGpu::Image& image, const Shader::ImageResource& desc) noexcept;
|
||||
ImageViewInfo(const AmdGpu::Liverpool::ColorBuffer& col_buffer, bool is_vo_surface) noexcept;
|
||||
ImageViewInfo(const AmdGpu::Liverpool::ColorBuffer& col_buffer) noexcept;
|
||||
ImageViewInfo(const AmdGpu::Liverpool::DepthBuffer& depth_buffer,
|
||||
AmdGpu::Liverpool::DepthView view, AmdGpu::Liverpool::DepthControl ctl);
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ TextureCache::TextureCache(const Vulkan::Instance& instance_, Vulkan::Scheduler&
|
|||
info.num_bits = 32;
|
||||
info.UpdateSize();
|
||||
const ImageId null_id = slot_images.insert(instance, scheduler, info);
|
||||
ASSERT(null_id.index == 0);
|
||||
ASSERT(null_id.index == NULL_IMAGE_ID.index);
|
||||
const vk::Image& null_image = slot_images[null_id].image;
|
||||
Vulkan::SetObjectName(instance.GetDevice(), null_image, "Null Image");
|
||||
slot_images[null_id].flags = ImageFlagBits::Tracked;
|
||||
|
@ -36,7 +36,7 @@ TextureCache::TextureCache(const Vulkan::Instance& instance_, Vulkan::Scheduler&
|
|||
ImageViewInfo view_info;
|
||||
const auto null_view_id =
|
||||
slot_image_views.insert(instance, view_info, slot_images[null_id], null_id);
|
||||
ASSERT(null_view_id.index == 0);
|
||||
ASSERT(null_view_id.index == NULL_IMAGE_VIEW_ID.index);
|
||||
const vk::ImageView& null_image_view = slot_image_views[null_view_id].image_view.get();
|
||||
Vulkan::SetObjectName(instance.GetDevice(), null_image_view, "Null Image View");
|
||||
}
|
||||
|
|
|
@ -102,6 +102,9 @@ public:
|
|||
return slot_image_views[id];
|
||||
}
|
||||
|
||||
/// Registers an image view for provided image
|
||||
ImageView& RegisterImageView(ImageId image_id, const ImageViewInfo& view_info);
|
||||
|
||||
bool IsMeta(VAddr address) const {
|
||||
return surface_metas.contains(address);
|
||||
}
|
||||
|
@ -181,9 +184,6 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
/// Registers an image view for provided image
|
||||
ImageView& RegisterImageView(ImageId image_id, const ImageViewInfo& view_info);
|
||||
|
||||
/// Create an image from the given parameters
|
||||
[[nodiscard]] ImageId InsertImage(const ImageInfo& info, VAddr cpu_addr);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue