layers: MR75, Merge DrawState and ShaderChecker into DrawState layer
This is the initial "dumb" merge where a few data structures are now duplicated
within DrawState. This is intentional to simplify the transition and a follow-on
commit will fix these inefficiencies.
Conflicts:
layers/draw_state.cpp
diff --git a/layers/draw_state.h b/layers/draw_state.h
index ce77bea..7d9d6b9 100755
--- a/layers/draw_state.h
+++ b/layers/draw_state.h
@@ -1,6 +1,7 @@
/*
*
* Copyright (C) 2015 Valve Corporation
+ * Copyright (C) 2015 Google, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -20,15 +21,31 @@
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * Author: Courtney Goeltzenleuchter <courtney@LunarG.com>
- * Author: Tobin Ehlis <tobin@lunarg.com>
+ * Author: Courtney Goeltzenleuchter <courtneygo@google.com>
+ * Author: Tobin Ehlis <tobine@google.com>
+ * Author: Chris Forbes <chrisf@ijw.co.nz>
*/
#include "vulkan/vk_layer.h"
+#include "vulkan/vk_lunarg_debug_report.h"
#include <vector>
#include <memory>
-#include "vulkan/vk_lunarg_debug_report.h"
-using namespace std;
+using std::vector;
+
+/* Shader checker error codes */
+typedef enum _SHADER_CHECKER_ERROR
+{
+ SHADER_CHECKER_NONE,
+ SHADER_CHECKER_FS_MIXED_BROADCAST, /* FS writes broadcast output AND custom outputs */
+ SHADER_CHECKER_INTERFACE_TYPE_MISMATCH, /* Type mismatch between shader stages or shader and pipeline */
+ SHADER_CHECKER_OUTPUT_NOT_CONSUMED, /* Entry appears in output interface, but missing in input */
+ SHADER_CHECKER_INPUT_NOT_PRODUCED, /* Entry appears in input interface, but missing in output */
+ SHADER_CHECKER_NON_SPIRV_SHADER, /* Shader image is not SPIR-V */
+ SHADER_CHECKER_INCONSISTENT_SPIRV, /* General inconsistency within a SPIR-V module */
+ SHADER_CHECKER_UNKNOWN_STAGE, /* Stage is not supported by analysis */
+ SHADER_CHECKER_INCONSISTENT_VI, /* VI state contains conflicting binding or attrib descriptions */
+ SHADER_CHECKER_MISSING_DESCRIPTOR, /* Shader attempts to use a descriptor binding not declared in the layout */
+} SHADER_CHECKER_ERROR;
// Draw State ERROR codes
typedef enum _DRAW_STATE_ERROR