intel: Add command buffer shader cache
The command buffer shader cache accumulates all the shader kernels
for a particular command buffer. It also checks that it includes a
shader only once.
diff --git a/icd/intel/pipeline.h b/icd/intel/pipeline.h
index 43c06a7..9884696 100644
--- a/icd/intel/pipeline.h
+++ b/icd/intel/pipeline.h
@@ -96,6 +96,11 @@
#define SHADER_FRAGMENT_FLAG (1 << XGL_SHADER_STAGE_FRAGMENT)
#define SHADER_COMPUTE_FLAG (1 << XGL_SHADER_STAGE_COMPUTE)
+struct intel_pipe_shader {
+ void *pCode;
+ uint32_t codeSize;
+};
+
/**
* 3D pipeline.
*/
@@ -139,13 +144,15 @@
uint32_t active_shaders;
XGL_PIPELINE_SHADER vs;
- struct intel_rmap *vs_rmap;
XGL_PIPELINE_SHADER fs;
+ struct intel_pipe_shader intel_vs;
+ struct intel_rmap *vs_rmap;
+ struct intel_pipe_shader intel_fs;
struct intel_rmap *fs_rmap;
- XGL_PIPELINE_SHADER gs;
- XGL_PIPELINE_SHADER tess_control;
- XGL_PIPELINE_SHADER tess_eval;
- XGL_PIPELINE_SHADER compute;
+ struct intel_pipe_shader gs;
+ struct intel_pipe_shader tess_control;
+ struct intel_pipe_shader tess_eval;
+ struct intel_pipe_shader compute;
XGL_SIZE total_size; // FB memory app needs to allocate for this pipeline