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