layers: Change Threading layer dispatch and logging
Use new log_msg with per instance and device dispatch
diff --git a/layers/threading.h b/layers/threading.h
index 8426e39..367679c 100644
--- a/layers/threading.h
+++ b/layers/threading.h
@@ -21,6 +21,10 @@
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
+#ifndef THREADING_H
+#define THREADING_H
+#include "vk_layer_config.h"
+#include "vk_layer_logging.h"
// Draw State ERROR codes
typedef enum _THREADING_CHECKER_ERROR
@@ -30,3 +34,19 @@
THREADING_CHECKER_SINGLE_THREAD_REUSE, // Object used simultaneously by recursion in single thread
} THREADING_CHECKER_ERROR;
+typedef struct _layer_data {
+ debug_report_data *report_data;
+ VkDbgMsgCallback logging_callback;
+} layer_data;
+
+static std::unordered_map<void*, layer_data *> layer_data_map;
+static device_table_map Threading_device_table_map;
+static instance_table_map Threading_instance_table_map;
+
+static inline debug_report_data *mdd(const void* object)
+{
+ dispatch_key key = get_dispatch_key(object);
+ layer_data *my_data = get_my_data_ptr(key, layer_data_map);
+ return my_data->report_data;
+}
+#endif // THREADING_H