summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2015-01-15 02:05:18 -0800
committerKenneth Graunke <[email protected]>2015-02-05 20:01:03 -0800
commitd4a461caaf00ae13b83f106f032d3f4125687a02 (patch)
tree4d429ae51ee7225ece77e249563ffead701dacc5 /src/mesa
parent32f1d4e2869fbbac28e9a289fd7a12ee4746071a (diff)
i965: Fix INTEL_DEBUG=shader_time for SIMD8 VS (and GS).
We were incorrectly attributing VS time to FS8 on Gen8+, which now use fs_visitor for vertex shaders. We don't hit this for geometry shaders yet, but we may as well add support now - the fix is obvious, and we'll just forget later. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Francisco Jerez <[email protected]> Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 2046eba354a..200a494c4c9 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -724,15 +724,31 @@ fs_visitor::emit_shader_time_end()
current_annotation = "shader time end";
enum shader_time_shader_type type, written_type, reset_type;
- if (dispatch_width == 8) {
- type = ST_FS8;
- written_type = ST_FS8_WRITTEN;
- reset_type = ST_FS8_RESET;
- } else {
- assert(dispatch_width == 16);
- type = ST_FS16;
- written_type = ST_FS16_WRITTEN;
- reset_type = ST_FS16_RESET;
+ switch (stage) {
+ case MESA_SHADER_VERTEX:
+ type = ST_VS;
+ written_type = ST_VS_WRITTEN;
+ reset_type = ST_VS_RESET;
+ break;
+ case MESA_SHADER_GEOMETRY:
+ type = ST_GS;
+ written_type = ST_GS_WRITTEN;
+ reset_type = ST_GS_RESET;
+ break;
+ case MESA_SHADER_FRAGMENT:
+ if (dispatch_width == 8) {
+ type = ST_FS8;
+ written_type = ST_FS8_WRITTEN;
+ reset_type = ST_FS8_RESET;
+ } else {
+ assert(dispatch_width == 16);
+ type = ST_FS16;
+ written_type = ST_FS16_WRITTEN;
+ reset_type = ST_FS16_RESET;
+ }
+ break;
+ default:
+ unreachable("fs_visitor::emit_shader_time_end missing code");
}
fs_reg shader_end_time = get_timestamp();