[GPU] Display swap output in the trace viewer

Resolve output is unreliable because resolving may be done to a subregion of a texture and even to 3D textures, and to any color format
This commit is contained in:
Triang3l
2022-07-01 19:50:19 +03:00
parent 28670d8ec2
commit e37e3ef382
12 changed files with 25 additions and 58 deletions

View File

@@ -714,7 +714,8 @@ Presenter::GuestOutputPaintFlow Presenter::GetGuestOutputPaintFlow(
// ratio while stretching throughout the entire surface's width, then limit
// the Y cropping via letterboxing or stretching along X.
uint32_t present_safe_area;
if (cvars::present_safe_area_y > 0 && cvars::present_safe_area_y < 100) {
if (config.GetAllowOverscanCutoff() && cvars::present_safe_area_y > 0 &&
cvars::present_safe_area_y < 100) {
present_safe_area = uint32_t(cvars::present_safe_area_y);
} else {
present_safe_area = 100;
@@ -756,7 +757,8 @@ Presenter::GuestOutputPaintFlow Presenter::GetGuestOutputPaintFlow(
// aspect ratio while stretching throughout the entire surface's height,
// then limit the X cropping via letterboxing or stretching along Y.
uint32_t present_safe_area;
if (cvars::present_safe_area_x > 0 && cvars::present_safe_area_x < 100) {
if (config.GetAllowOverscanCutoff() && cvars::present_safe_area_x > 0 &&
cvars::present_safe_area_x < 100) {
present_safe_area = uint32_t(cvars::present_safe_area_x);
} else {
present_safe_area = 100;

View File

@@ -228,6 +228,11 @@ class Presenter {
// In the sharpness setters, min / max with a constant as the first argument
// also drops NaNs.
bool GetAllowOverscanCutoff() const { return allow_overscan_cutoff_; }
void SetAllowOverscanCutoff(bool new_allow_overscan_cutoff) {
allow_overscan_cutoff_ = new_allow_overscan_cutoff;
}
Effect GetEffect() const { return effect_; }
void SetEffect(Effect new_effect) { effect_ = new_effect; }
@@ -265,8 +270,10 @@ class Presenter {
void SetDither(bool new_dither) { dither_ = new_dither; }
private:
// Tools, rather than the emulator itself, must use kBilinear as the image
// must be as close to the original front buffer as possible.
// Tools, rather than the emulator itself, must not allow overscan cutoff
// and must use the kBilinear effect as the image must be as close to the
// original front buffer as possible.
bool allow_overscan_cutoff_ = false;
Effect effect_ = Effect::kBilinear;
float cas_additional_sharpness_ = kCasAdditionalSharpnessDefault;
uint32_t fsr_max_upsampling_passes_ = kFsrMaxUpscalingPassesMax;