summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/v3d/v3d_simulator_wrapper.cpp
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2019-01-04 09:17:15 -0800
committerEric Anholt <eric@anholt.net>2019-01-14 13:18:02 -0800
commit49b7e26facab793be3b36e3068e758165455e276 (patch)
tree44fd6beffd0ea3d334c7a590f8e9368f54765b77 /src/gallium/drivers/v3d/v3d_simulator_wrapper.cpp
parent3790ee07e6666f734dd595c4c4dd3501a741a59a (diff)
v3d: Add an isr to the simulator to catch GMP violations.
Otherwise, the simulator raises the GMP interrupt and waits for it to be handled, and v3d ends up spinning in v3d_hw_tick(). Aborting right when violation happens gives us a chance to look at the backtrace of whatever thread triggered the violation.
Diffstat (limited to 'src/gallium/drivers/v3d/v3d_simulator_wrapper.cpp')
-rw-r--r--src/gallium/drivers/v3d/v3d_simulator_wrapper.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/v3d/v3d_simulator_wrapper.cpp b/src/gallium/drivers/v3d/v3d_simulator_wrapper.cpp
index 7b04ded2b53..15db767d534 100644
--- a/src/gallium/drivers/v3d/v3d_simulator_wrapper.cpp
+++ b/src/gallium/drivers/v3d/v3d_simulator_wrapper.cpp
@@ -83,6 +83,11 @@ int v3d_hw_get_version(struct v3d_hw *hw)
return ident->tech_version * 10 + ident->revision;
}
+void
+v3d_hw_set_isr(struct v3d_hw *hw, void (*isr)(uint32_t status))
+{
+ hw->set_isr(isr);
}
+}
#endif /* USE_V3D_SIMULATOR */