mirror of
https://git.suyu.dev/suyu/suyu
synced 2024-11-01 12:57:52 +00:00
Shader_IR: Allow constant access of guest driver.
This commit is contained in:
parent
dc5cfa8d28
commit
b97608ca64
7 changed files with 18 additions and 1 deletions
|
@ -109,6 +109,7 @@ public:
|
||||||
virtual u32 GetBoundBuffer() const = 0;
|
virtual u32 GetBoundBuffer() const = 0;
|
||||||
|
|
||||||
virtual VideoCore::GuestDriverProfile& AccessGuestDriverProfile() = 0;
|
virtual VideoCore::GuestDriverProfile& AccessGuestDriverProfile() = 0;
|
||||||
|
virtual const VideoCore::GuestDriverProfile& AccessGuestDriverProfile() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Tegra::Engines
|
} // namespace Tegra::Engines
|
||||||
|
|
|
@ -98,6 +98,10 @@ VideoCore::GuestDriverProfile& KeplerCompute::AccessGuestDriverProfile() {
|
||||||
return rasterizer.AccessGuestDriverProfile();
|
return rasterizer.AccessGuestDriverProfile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const VideoCore::GuestDriverProfile& KeplerCompute::AccessGuestDriverProfile() const {
|
||||||
|
return rasterizer.AccessGuestDriverProfile();
|
||||||
|
}
|
||||||
|
|
||||||
void KeplerCompute::ProcessLaunch() {
|
void KeplerCompute::ProcessLaunch() {
|
||||||
const GPUVAddr launch_desc_loc = regs.launch_desc_loc.Address();
|
const GPUVAddr launch_desc_loc = regs.launch_desc_loc.Address();
|
||||||
memory_manager.ReadBlockUnsafe(launch_desc_loc, &launch_description,
|
memory_manager.ReadBlockUnsafe(launch_desc_loc, &launch_description,
|
||||||
|
|
|
@ -220,6 +220,8 @@ public:
|
||||||
|
|
||||||
VideoCore::GuestDriverProfile& AccessGuestDriverProfile() override;
|
VideoCore::GuestDriverProfile& AccessGuestDriverProfile() override;
|
||||||
|
|
||||||
|
const VideoCore::GuestDriverProfile& AccessGuestDriverProfile() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Core::System& system;
|
Core::System& system;
|
||||||
VideoCore::RasterizerInterface& rasterizer;
|
VideoCore::RasterizerInterface& rasterizer;
|
||||||
|
|
|
@ -788,4 +788,8 @@ VideoCore::GuestDriverProfile& Maxwell3D::AccessGuestDriverProfile() {
|
||||||
return rasterizer.AccessGuestDriverProfile();
|
return rasterizer.AccessGuestDriverProfile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const VideoCore::GuestDriverProfile& Maxwell3D::AccessGuestDriverProfile() const {
|
||||||
|
return rasterizer.AccessGuestDriverProfile();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Tegra::Engines
|
} // namespace Tegra::Engines
|
||||||
|
|
|
@ -1308,6 +1308,8 @@ public:
|
||||||
|
|
||||||
VideoCore::GuestDriverProfile& AccessGuestDriverProfile() override;
|
VideoCore::GuestDriverProfile& AccessGuestDriverProfile() override;
|
||||||
|
|
||||||
|
const VideoCore::GuestDriverProfile& AccessGuestDriverProfile() const override;
|
||||||
|
|
||||||
/// Memory for macro code - it's undetermined how big this is, however 1MB is much larger than
|
/// Memory for macro code - it's undetermined how big this is, however 1MB is much larger than
|
||||||
/// we've seen used.
|
/// we've seen used.
|
||||||
using MacroMemory = std::array<u32, 0x40000>;
|
using MacroMemory = std::array<u32, 0x40000>;
|
||||||
|
|
|
@ -84,6 +84,10 @@ public:
|
||||||
return guest_driver_profile;
|
return guest_driver_profile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const GuestDriverProfile& AccessGuestDriverProfile() const {
|
||||||
|
return guest_driver_profile;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
GuestDriverProfile guest_driver_profile{};
|
GuestDriverProfile guest_driver_profile{};
|
||||||
};
|
};
|
||||||
|
|
|
@ -81,7 +81,7 @@ public:
|
||||||
return bound_buffer;
|
return bound_buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
VideoCore::GuestDriverProfile* AccessGuestDriverProfile() {
|
VideoCore::GuestDriverProfile* AccessGuestDriverProfile() const {
|
||||||
if (engine) {
|
if (engine) {
|
||||||
return &(engine->AccessGuestDriverProfile());
|
return &(engine->AccessGuestDriverProfile());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue