GPU: Added a function to retrieve the active textures for a shader stage.

TODO: A shader may not use all of these textures at the same time, shader analysis should be performed to determine which textures are actually sampled.
This commit is contained in:
Subv
2018-03-23 18:56:27 -05:00
parent 39e60cfeb1
commit 2c785bd06c
2 changed files with 59 additions and 50 deletions

View File

@ -12,6 +12,7 @@
#include "common/common_funcs.h"
#include "common/common_types.h"
#include "video_core/memory_manager.h"
#include "video_core/textures/texture.h"
namespace Tegra {
namespace Engines {
@ -21,12 +22,6 @@ public:
explicit Maxwell3D(MemoryManager& memory_manager);
~Maxwell3D() = default;
/// Write the value to the register identified by method.
void WriteReg(u32 method, u32 value, u32 remaining_params);
/// Uploads the code for a GPU macro program associated with the specified entry.
void SubmitMacroCode(u32 entry, std::vector<u32> code);
/// Register structure of the Maxwell3D engine.
/// TODO(Subv): This structure will need to be made bigger as more registers are discovered.
struct Regs {
@ -430,6 +425,15 @@ public:
State state{};
/// Write the value to the register identified by method.
void WriteReg(u32 method, u32 value, u32 remaining_params);
/// Uploads the code for a GPU macro program associated with the specified entry.
void SubmitMacroCode(u32 entry, std::vector<u32> code);
/// Returns a list of enabled textures for the specified shader stage.
std::vector<Texture::TICEntry> GetStageTextures(Regs::ShaderStage stage);
private:
MemoryManager& memory_manager;