VideoCore: Initial Setup for the Resolution Scaler.

This commit is contained in:
Fernando Sahmkow 2021-07-18 18:40:14 +02:00
parent 720970c4c1
commit 22f4b290b6
11 changed files with 255 additions and 18 deletions

View file

@ -849,6 +849,22 @@ void Image::CopyImageToBuffer(const VideoCommon::BufferImageCopy& copy, size_t b
}
}
void Image::ScaleUp() {
if (True(flags & ImageFlagBits::Rescaled)) {
return;
}
flags |= ImageFlagBits::Rescaled;
UNIMPLEMENTED();
}
void Image::ScaleDown() {
if (False(flags & ImageFlagBits::Rescaled)) {
return;
}
flags &= ~ImageFlagBits::Rescaled;
UNIMPLEMENTED();
}
ImageView::ImageView(TextureCacheRuntime& runtime, const VideoCommon::ImageViewInfo& info,
ImageId image_id_, Image& image)
: VideoCommon::ImageViewBase{info, image.info, image_id_}, views{runtime.null_image_views} {

View file

@ -72,6 +72,8 @@ public:
StateTracker& state_tracker);
~TextureCacheRuntime();
void Init() {}
void Finish();
ImageBufferMap UploadStagingBuffer(size_t size);
@ -110,6 +112,8 @@ public:
bool HasNativeASTC() const noexcept;
void TickFrame() {}
private:
struct StagingBuffers {
explicit StagingBuffers(GLenum storage_flags_, GLenum map_flags_);
@ -185,6 +189,10 @@ public:
return gl_type;
}
bool ScaleUp();
bool ScaleDown();
private:
void CopyBufferToImage(const VideoCommon::BufferImageCopy& copy, size_t buffer_offset);