summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/i965/brw_eu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/i965/brw_eu.c')
-rw-r--r--src/gallium/drivers/i965/brw_eu.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/gallium/drivers/i965/brw_eu.c b/src/gallium/drivers/i965/brw_eu.c
index de43b14512d..a8fcb5f97eb 100644
--- a/src/gallium/drivers/i965/brw_eu.c
+++ b/src/gallium/drivers/i965/brw_eu.c
@@ -118,16 +118,23 @@ void brw_init_compile( struct brw_context *brw, struct brw_compile *p )
}
-const GLuint *brw_get_program( struct brw_compile *p,
- GLuint *sz )
+enum pipe_error brw_get_program( struct brw_compile *p,
+ const GLuint **data,
+ GLuint *sz )
{
GLuint i;
for (i = 0; i < 8; i++)
brw_NOP(p);
+ /* Is the generated program malformed for some reason?
+ */
+ if (p->error)
+ return PIPE_ERROR_BAD_INPUT;
+
*sz = p->nr_insn * sizeof(struct brw_instruction);
- return (const GLuint *)p->store;
+ *data = (const GLuint *)p->store;
+ return PIPE_OK;
}