Pica: Remove geometry dumper (PICA_DUMP_GEOMETRY)
This commit is contained in:
parent
0b7efc2be2
commit
ff7c798d86
|
@ -249,10 +249,6 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
|
||||||
const u16* index_address_16 = reinterpret_cast<const u16*>(index_address_8);
|
const u16* index_address_16 = reinterpret_cast<const u16*>(index_address_8);
|
||||||
bool index_u16 = index_info.format != 0;
|
bool index_u16 = index_info.format != 0;
|
||||||
|
|
||||||
#if PICA_DUMP_GEOMETRY
|
|
||||||
DebugUtils::GeometryDumper geometry_dumper;
|
|
||||||
PrimitiveAssembler<DebugUtils::GeometryDumper::Vertex> dumping_primitive_assembler(regs.triangle_topology.Value());
|
|
||||||
#endif
|
|
||||||
PrimitiveAssembler<Shader::OutputVertex>& primitive_assembler = g_state.primitive_assembler;
|
PrimitiveAssembler<Shader::OutputVertex>& primitive_assembler = g_state.primitive_assembler;
|
||||||
|
|
||||||
if (g_debug_context) {
|
if (g_debug_context) {
|
||||||
|
@ -388,17 +384,6 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
|
||||||
if (g_debug_context)
|
if (g_debug_context)
|
||||||
g_debug_context->OnEvent(DebugContext::Event::VertexLoaded, (void*)&input);
|
g_debug_context->OnEvent(DebugContext::Event::VertexLoaded, (void*)&input);
|
||||||
|
|
||||||
#if PICA_DUMP_GEOMETRY
|
|
||||||
// NOTE: When dumping geometry, we simply assume that the first input attribute
|
|
||||||
// corresponds to the position for now.
|
|
||||||
DebugUtils::GeometryDumper::Vertex dumped_vertex = {
|
|
||||||
input.attr[0][0].ToFloat32(), input.attr[0][1].ToFloat32(), input.attr[0][2].ToFloat32()
|
|
||||||
};
|
|
||||||
using namespace std::placeholders;
|
|
||||||
dumping_primitive_assembler.SubmitVertex(dumped_vertex,
|
|
||||||
std::bind(&DebugUtils::GeometryDumper::AddTriangle,
|
|
||||||
&geometry_dumper, _1, _2, _3));
|
|
||||||
#endif
|
|
||||||
// Send to vertex shader
|
// Send to vertex shader
|
||||||
output = Shader::Run(shader_unit, input, attribute_config.GetNumTotalAttributes());
|
output = Shader::Run(shader_unit, input, attribute_config.GetNumTotalAttributes());
|
||||||
|
|
||||||
|
@ -424,10 +409,6 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
|
||||||
range.second, range.first);
|
range.second, range.first);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if PICA_DUMP_GEOMETRY
|
|
||||||
geometry_dumper.Dump();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,35 +85,6 @@ std::shared_ptr<DebugContext> g_debug_context; // TODO: Get rid of this global
|
||||||
|
|
||||||
namespace DebugUtils {
|
namespace DebugUtils {
|
||||||
|
|
||||||
void GeometryDumper::AddTriangle(Vertex& v0, Vertex& v1, Vertex& v2) {
|
|
||||||
vertices.push_back(v0);
|
|
||||||
vertices.push_back(v1);
|
|
||||||
vertices.push_back(v2);
|
|
||||||
|
|
||||||
int num_vertices = (int)vertices.size();
|
|
||||||
faces.push_back({{ num_vertices-3, num_vertices-2, num_vertices-1 }});
|
|
||||||
}
|
|
||||||
|
|
||||||
void GeometryDumper::Dump() {
|
|
||||||
static int index = 0;
|
|
||||||
std::string filename = std::string("geometry_dump") + std::to_string(++index) + ".obj";
|
|
||||||
|
|
||||||
std::ofstream file(filename);
|
|
||||||
|
|
||||||
for (const auto& vertex : vertices) {
|
|
||||||
file << "v " << vertex.pos[0]
|
|
||||||
<< " " << vertex.pos[1]
|
|
||||||
<< " " << vertex.pos[2] << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const Face& face : faces) {
|
|
||||||
file << "f " << 1+face.index[0]
|
|
||||||
<< " " << 1+face.index[1]
|
|
||||||
<< " " << 1+face.index[2] << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DumpShader(const std::string& filename, const Regs::ShaderConfig& config, const Shader::ShaderSetup& setup, const Regs::VSOutputAttributes* output_attributes)
|
void DumpShader(const std::string& filename, const Regs::ShaderConfig& config, const Shader::ShaderSetup& setup, const Regs::VSOutputAttributes* output_attributes)
|
||||||
{
|
{
|
||||||
struct StuffToWrite {
|
struct StuffToWrite {
|
||||||
|
|
|
@ -158,30 +158,9 @@ extern std::shared_ptr<DebugContext> g_debug_context; // TODO: Get rid of this g
|
||||||
|
|
||||||
namespace DebugUtils {
|
namespace DebugUtils {
|
||||||
|
|
||||||
#define PICA_DUMP_GEOMETRY 0
|
|
||||||
#define PICA_DUMP_TEXTURES 0
|
#define PICA_DUMP_TEXTURES 0
|
||||||
#define PICA_LOG_TEV 0
|
#define PICA_LOG_TEV 0
|
||||||
|
|
||||||
// Simple utility class for dumping geometry data to an OBJ file
|
|
||||||
class GeometryDumper {
|
|
||||||
public:
|
|
||||||
struct Vertex {
|
|
||||||
std::array<float,3> pos;
|
|
||||||
};
|
|
||||||
|
|
||||||
void AddTriangle(Vertex& v0, Vertex& v1, Vertex& v2);
|
|
||||||
|
|
||||||
void Dump();
|
|
||||||
|
|
||||||
private:
|
|
||||||
struct Face {
|
|
||||||
int index[3];
|
|
||||||
};
|
|
||||||
|
|
||||||
std::vector<Vertex> vertices;
|
|
||||||
std::vector<Face> faces;
|
|
||||||
};
|
|
||||||
|
|
||||||
void DumpShader(const std::string& filename, const Regs::ShaderConfig& config,
|
void DumpShader(const std::string& filename, const Regs::ShaderConfig& config,
|
||||||
const Shader::ShaderSetup& setup, const Regs::VSOutputAttributes* output_attributes);
|
const Shader::ShaderSetup& setup, const Regs::VSOutputAttributes* output_attributes);
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,5 @@ void PrimitiveAssembler<VertexType>::Reconfigure(Regs::TriangleTopology topology
|
||||||
// explicitly instantiate use cases
|
// explicitly instantiate use cases
|
||||||
template
|
template
|
||||||
struct PrimitiveAssembler<Shader::OutputVertex>;
|
struct PrimitiveAssembler<Shader::OutputVertex>;
|
||||||
template
|
|
||||||
struct PrimitiveAssembler<DebugUtils::GeometryDumper::Vertex>;
|
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
Reference in New Issue