Merge pull request #760 from yuriks/gpu-profile
GPU: add more fine grained profiling for vertex shader and rasterization
This commit is contained in:
		| @@ -6,6 +6,7 @@ | ||||
|  | ||||
| #include "common/common_types.h" | ||||
| #include "common/math_util.h" | ||||
| #include "common/profiler.h" | ||||
|  | ||||
| #include "core/hw/gpu.h" | ||||
| #include "debug_utils/debug_utils.h" | ||||
| @@ -186,6 +187,8 @@ static int SignedArea (const Math::Vec2<Fix12P4>& vtx1, | ||||
|     return Math::Cross(vec1, vec2).z; | ||||
| }; | ||||
|  | ||||
| static Common::Profiling::TimingCategory rasterization_category("Rasterization"); | ||||
|  | ||||
| /** | ||||
|  * Helper function for ProcessTriangle with the "reversed" flag to allow for implementing | ||||
|  * culling via recursion. | ||||
| @@ -195,6 +198,8 @@ static void ProcessTriangleInternal(const VertexShader::OutputVertex& v0, | ||||
|                                     const VertexShader::OutputVertex& v2, | ||||
|                                     bool reversed = false) | ||||
| { | ||||
|     Common::Profiling::ScopeTimer timer(rasterization_category); | ||||
|  | ||||
|     // vertex positions in rasterizer coordinates | ||||
|     static auto FloatToFix = [](float24 flt) { | ||||
|         // TODO: Rounding here is necessary to prevent garbage pixels at | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include <nihstro/shader_bytecode.h> | ||||
|  | ||||
| #include "common/profiler.h" | ||||
|  | ||||
| #include "pica.h" | ||||
| #include "vertex_shader.h" | ||||
| @@ -574,7 +575,11 @@ static void ProcessShaderCode(VertexShaderState& state) { | ||||
|     } | ||||
| } | ||||
|  | ||||
| static Common::Profiling::TimingCategory shader_category("Vertex Shader"); | ||||
|  | ||||
| OutputVertex RunShader(const InputVertex& input, int num_attributes) { | ||||
|     Common::Profiling::ScopeTimer timer(shader_category); | ||||
|  | ||||
|     VertexShaderState state; | ||||
|  | ||||
|     const u32* main = &shader_memory[registers.vs_main_offset]; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yuri Kunde Schlesner
					Yuri Kunde Schlesner