mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	VideoCore: Rename some types to more accurate names
This commit is contained in:
		@@ -71,8 +71,8 @@ void GraphicsTracingWidget::StartRecording() {
 | 
			
		||||
    std::array<u32, 4 * 16> default_attributes;
 | 
			
		||||
    for (unsigned i = 0; i < 16; ++i) {
 | 
			
		||||
        for (unsigned comp = 0; comp < 3; ++comp) {
 | 
			
		||||
            default_attributes[4 * i + comp] =
 | 
			
		||||
                nihstro::to_float24(Pica::g_state.vs_default_attributes[i][comp].ToFloat32());
 | 
			
		||||
            default_attributes[4 * i + comp] = nihstro::to_float24(
 | 
			
		||||
                Pica::g_state.input_default_attributes.attr[i][comp].ToFloat32());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -82,7 +82,7 @@ private:
 | 
			
		||||
 | 
			
		||||
    nihstro::ShaderInfo info;
 | 
			
		||||
    Pica::Shader::DebugData<true> debug_data;
 | 
			
		||||
    Pica::Shader::InputVertex input_vertex;
 | 
			
		||||
    Pica::Shader::AttributeBuffer input_vertex;
 | 
			
		||||
 | 
			
		||||
    friend class GraphicsVertexShaderModel;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -125,7 +125,7 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
 | 
			
		||||
 | 
			
		||||
            // TODO: Verify that this actually modifies the register!
 | 
			
		||||
            if (setup.index < 15) {
 | 
			
		||||
                g_state.vs_default_attributes[setup.index] = attribute;
 | 
			
		||||
                g_state.input_default_attributes.attr[setup.index] = attribute;
 | 
			
		||||
                setup.index++;
 | 
			
		||||
            } else {
 | 
			
		||||
                // Put each attribute into an immediate input buffer.
 | 
			
		||||
@@ -138,7 +138,7 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
 | 
			
		||||
 | 
			
		||||
                immediate_input.attr[immediate_attribute_id++] = attribute;
 | 
			
		||||
 | 
			
		||||
                if (immediate_attribute_id >= regs.vs.max_input_attribute_index + 1) {
 | 
			
		||||
                if (immediate_attribute_id > regs.vs.max_input_attribute_index) {
 | 
			
		||||
                    MICROPROFILE_SCOPE(GPU_Drawing);
 | 
			
		||||
                    immediate_attribute_id = 0;
 | 
			
		||||
 | 
			
		||||
@@ -150,8 +150,7 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
 | 
			
		||||
                        g_debug_context->OnEvent(DebugContext::Event::VertexShaderInvocation,
 | 
			
		||||
                                                 static_cast<void*>(&immediate_input));
 | 
			
		||||
                    Shader::UnitState shader_unit;
 | 
			
		||||
                    shader_unit.LoadInputVertex(immediate_input,
 | 
			
		||||
                                                regs.vs.max_input_attribute_index + 1);
 | 
			
		||||
                    shader_unit.LoadInput(immediate_input, regs.vs.max_input_attribute_index + 1);
 | 
			
		||||
                    shader_engine->Run(g_state.vs, shader_unit);
 | 
			
		||||
                    auto output_vertex = Shader::OutputVertex::FromRegisters(
 | 
			
		||||
                        shader_unit.registers.output, regs, regs.vs.output_mask);
 | 
			
		||||
@@ -281,14 +280,14 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
 | 
			
		||||
 | 
			
		||||
            if (!vertex_cache_hit) {
 | 
			
		||||
                // Initialize data for the current vertex
 | 
			
		||||
                Shader::InputVertex input;
 | 
			
		||||
                Shader::AttributeBuffer input;
 | 
			
		||||
                loader.LoadVertex(base_address, index, vertex, input, memory_accesses);
 | 
			
		||||
 | 
			
		||||
                // Send to vertex shader
 | 
			
		||||
                if (g_debug_context)
 | 
			
		||||
                    g_debug_context->OnEvent(DebugContext::Event::VertexShaderInvocation,
 | 
			
		||||
                                             (void*)&input);
 | 
			
		||||
                shader_unit.LoadInputVertex(input, loader.GetNumTotalAttributes());
 | 
			
		||||
                shader_unit.LoadInput(input, loader.GetNumTotalAttributes());
 | 
			
		||||
                shader_engine->Run(g_state.vs, shader_unit);
 | 
			
		||||
 | 
			
		||||
                // Retrieve vertex from register data
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ struct State {
 | 
			
		||||
    Shader::ShaderSetup vs;
 | 
			
		||||
    Shader::ShaderSetup gs;
 | 
			
		||||
 | 
			
		||||
    std::array<Math::Vec4<float24>, 16> vs_default_attributes;
 | 
			
		||||
    Shader::AttributeBuffer input_default_attributes;
 | 
			
		||||
 | 
			
		||||
    struct {
 | 
			
		||||
        union LutEntry {
 | 
			
		||||
@@ -66,7 +66,7 @@ struct State {
 | 
			
		||||
    /// Struct used to describe immediate mode rendering state
 | 
			
		||||
    struct ImmediateModeState {
 | 
			
		||||
        // Used to buffer partial vertices for immediate-mode rendering.
 | 
			
		||||
        Shader::InputVertex input_vertex;
 | 
			
		||||
        Shader::AttributeBuffer input_vertex;
 | 
			
		||||
        // Index of the next attribute to be loaded into `input_vertex`.
 | 
			
		||||
        u32 current_attribute = 0;
 | 
			
		||||
    } immediate;
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,7 @@ OutputVertex OutputVertex::FromRegisters(Math::Vec4<float24> output_regs[16], co
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void UnitState::LoadInputVertex(const InputVertex& input, int num_attributes) {
 | 
			
		||||
void UnitState::LoadInput(const AttributeBuffer& input, int num_attributes) {
 | 
			
		||||
    // Setup input register table
 | 
			
		||||
    const auto& attribute_register_map = g_state.regs.vs.input_register_map;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ namespace Pica {
 | 
			
		||||
 | 
			
		||||
namespace Shader {
 | 
			
		||||
 | 
			
		||||
struct InputVertex {
 | 
			
		||||
struct AttributeBuffer {
 | 
			
		||||
    alignas(16) Math::Vec4<float24> attr[16];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -140,7 +140,7 @@ struct UnitState {
 | 
			
		||||
     * @param input Input vertex into the shader
 | 
			
		||||
     * @param num_attributes The number of vertex shader attributes to load
 | 
			
		||||
     */
 | 
			
		||||
    void LoadInputVertex(const InputVertex& input, int num_attributes);
 | 
			
		||||
    void LoadInput(const AttributeBuffer& input, int num_attributes);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct ShaderSetup {
 | 
			
		||||
 
 | 
			
		||||
@@ -668,14 +668,14 @@ void InterpreterEngine::Run(const ShaderSetup& setup, UnitState& state) const {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
DebugData<true> InterpreterEngine::ProduceDebugInfo(const ShaderSetup& setup,
 | 
			
		||||
                                                    const InputVertex& input,
 | 
			
		||||
                                                    const AttributeBuffer& input,
 | 
			
		||||
                                                    int num_attributes) const {
 | 
			
		||||
    UnitState state;
 | 
			
		||||
    DebugData<true> debug_data;
 | 
			
		||||
 | 
			
		||||
    // Setup input register table
 | 
			
		||||
    boost::fill(state.registers.input, Math::Vec4<float24>::AssignToAll(float24::Zero()));
 | 
			
		||||
    state.LoadInputVertex(input, num_attributes);
 | 
			
		||||
    state.LoadInput(input, num_attributes);
 | 
			
		||||
    RunInterpreter(setup, state, debug_data, setup.engine_data.entry_point);
 | 
			
		||||
    return debug_data;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ public:
 | 
			
		||||
     * @param config Configuration object for the shader pipeline
 | 
			
		||||
     * @return Debug information for this shader with regards to the given vertex
 | 
			
		||||
     */
 | 
			
		||||
    DebugData<true> ProduceDebugInfo(const ShaderSetup& setup, const InputVertex& input,
 | 
			
		||||
    DebugData<true> ProduceDebugInfo(const ShaderSetup& setup, const AttributeBuffer& input,
 | 
			
		||||
                                     int num_attributes) const;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -70,7 +70,8 @@ void VertexLoader::Setup(const Pica::Regs& regs) {
 | 
			
		||||
    is_setup = true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void VertexLoader::LoadVertex(u32 base_address, int index, int vertex, Shader::InputVertex& input,
 | 
			
		||||
void VertexLoader::LoadVertex(u32 base_address, int index, int vertex,
 | 
			
		||||
                              Shader::AttributeBuffer& input,
 | 
			
		||||
                              DebugUtils::MemoryAccessTracker& memory_accesses) {
 | 
			
		||||
    ASSERT_MSG(is_setup, "A VertexLoader needs to be setup before loading vertices.");
 | 
			
		||||
 | 
			
		||||
@@ -142,7 +143,7 @@ void VertexLoader::LoadVertex(u32 base_address, int index, int vertex, Shader::I
 | 
			
		||||
                      input.attr[i][2].ToFloat32(), input.attr[i][3].ToFloat32());
 | 
			
		||||
        } else if (vertex_attribute_is_default[i]) {
 | 
			
		||||
            // Load the default attribute if we're configured to do so
 | 
			
		||||
            input.attr[i] = g_state.vs_default_attributes[i];
 | 
			
		||||
            input.attr[i] = g_state.input_default_attributes.attr[i];
 | 
			
		||||
            LOG_TRACE(HW_GPU,
 | 
			
		||||
                      "Loaded default attribute %x for vertex %x (index %x): (%f, %f, %f, %f)", i,
 | 
			
		||||
                      vertex, index, input.attr[i][0].ToFloat32(), input.attr[i][1].ToFloat32(),
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ class MemoryAccessTracker;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace Shader {
 | 
			
		||||
struct InputVertex;
 | 
			
		||||
struct AttributeBuffer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class VertexLoader {
 | 
			
		||||
@@ -22,7 +22,7 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void Setup(const Pica::Regs& regs);
 | 
			
		||||
    void LoadVertex(u32 base_address, int index, int vertex, Shader::InputVertex& input,
 | 
			
		||||
    void LoadVertex(u32 base_address, int index, int vertex, Shader::AttributeBuffer& input,
 | 
			
		||||
                    DebugUtils::MemoryAccessTracker& memory_accesses);
 | 
			
		||||
 | 
			
		||||
    int GetNumTotalAttributes() const {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user