summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2018-03-13 20:47:48 +1100
committerTimothy Arceri <[email protected]>2018-03-20 14:17:34 +1100
commit57ebab64c0dd1abd646f4f274d01f19c8e0e7293 (patch)
tree0412e2aef6003cec14e41b23822767e7f8d8ead9
parent23777543290b9dfa17bfecb5b389ad3fc8e75820 (diff)
mesa: add _mesa_add_sized_state_reference() helper
This will be used for adding packed builtin uniforms. Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r--src/mesa/program/prog_parameter.c36
-rw-r--r--src/mesa/program/prog_parameter.h5
2 files changed, 27 insertions, 14 deletions
diff --git a/src/mesa/program/prog_parameter.c b/src/mesa/program/prog_parameter.c
index af9bb37cd5c..88821cfba16 100644
--- a/src/mesa/program/prog_parameter.c
+++ b/src/mesa/program/prog_parameter.c
@@ -362,21 +362,11 @@ _mesa_add_typed_unnamed_constant(struct gl_program_parameter_list *paramList,
return pos;
}
-
-/**
- * Add a new state reference to the parameter list.
- * This will be used when the program contains something like this:
- * PARAM ambient = state.material.front.ambient;
- *
- * \param paramList the parameter list
- * \param stateTokens an array of 5 (STATE_LENGTH) state tokens
- * \return index of the new parameter.
- */
GLint
-_mesa_add_state_reference(struct gl_program_parameter_list *paramList,
- const gl_state_index16 stateTokens[STATE_LENGTH])
+_mesa_add_sized_state_reference(struct gl_program_parameter_list *paramList,
+ const gl_state_index16 stateTokens[STATE_LENGTH],
+ const unsigned size, bool pad_and_align)
{
- const GLuint size = 4; /* XXX fix */
char *name;
GLint index;
@@ -391,7 +381,8 @@ _mesa_add_state_reference(struct gl_program_parameter_list *paramList,
name = _mesa_program_state_string(stateTokens);
index = _mesa_add_parameter(paramList, PROGRAM_STATE_VAR, name,
- size, GL_NONE, NULL, stateTokens, true);
+ size, GL_NONE, NULL, stateTokens,
+ pad_and_align);
paramList->StateFlags |= _mesa_program_state_flags(stateTokens);
/* free name string here since we duplicated it in add_parameter() */
@@ -399,3 +390,20 @@ _mesa_add_state_reference(struct gl_program_parameter_list *paramList,
return index;
}
+
+
+/**
+ * Add a new state reference to the parameter list.
+ * This will be used when the program contains something like this:
+ * PARAM ambient = state.material.front.ambient;
+ *
+ * \param paramList the parameter list
+ * \param stateTokens an array of 5 (STATE_LENGTH) state tokens
+ * \return index of the new parameter.
+ */
+GLint
+_mesa_add_state_reference(struct gl_program_parameter_list *paramList,
+ const gl_state_index16 stateTokens[STATE_LENGTH])
+{
+ return _mesa_add_sized_state_reference(paramList, stateTokens, 4, true);
+}
diff --git a/src/mesa/program/prog_parameter.h b/src/mesa/program/prog_parameter.h
index 83eb0c5613a..8e36a1c5904 100644
--- a/src/mesa/program/prog_parameter.h
+++ b/src/mesa/program/prog_parameter.h
@@ -128,6 +128,11 @@ _mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList,
}
extern GLint
+_mesa_add_sized_state_reference(struct gl_program_parameter_list *paramList,
+ const gl_state_index16 stateTokens[STATE_LENGTH],
+ const unsigned size, bool pad_and_align);
+
+extern GLint
_mesa_add_state_reference(struct gl_program_parameter_list *paramList,
const gl_state_index16 stateTokens[]);