diff options
author | Timothy Arceri <[email protected]> | 2017-02-04 10:46:53 +1100 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-02-09 12:22:56 +1100 |
commit | a3fd8bb8c58e35ef06928fe0c565480b0e8f6343 (patch) | |
tree | c69b33074384b952b1b2f3daad7bb307e9e29f67 /src/mesa/drivers/dri | |
parent | ac5845453c655a08ecabe3a891a3d2d9fea39866 (diff) |
st/mesa/i965: create link status enum
For the on-disk shader cache we want to be able to differentiate
between a program that was linked and one that was loaded from cache.
V2:
- don't return the new enum directly to the application when queried,
instead return GL_TRUE or GL_FALSE as required. Fixes google-chrome
corruptions when using cache.
Reviewed-by: Anuj Phogat <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_cs.c | 4 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_tcs.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_tes.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vs.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_wm.c | 2 |
5 files changed, 6 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_cs.c b/src/mesa/drivers/dri/i965/brw_cs.c index 0f8d4ebcb83..16b7945bd7e 100644 --- a/src/mesa/drivers/dri/i965/brw_cs.c +++ b/src/mesa/drivers/dri/i965/brw_cs.c @@ -66,7 +66,7 @@ brw_codegen_cs_prog(struct brw_context *brw, memset(&prog_data, 0, sizeof(prog_data)); if (cp->program.info.cs.shared_size > 64 * 1024) { - cp->program.sh.data->LinkStatus = false; + cp->program.sh.data->LinkStatus = linking_failure; const char *error_str = "Compute shader used more than 64KB of shared variables"; ralloc_strcat(&cp->program.sh.data->InfoLog, error_str); @@ -119,7 +119,7 @@ brw_codegen_cs_prog(struct brw_context *brw, &prog_data, cp->program.nir, st_index, &program_size, &error_str); if (program == NULL) { - cp->program.sh.data->LinkStatus = false; + cp->program.sh.data->LinkStatus = linking_failure; ralloc_strcat(&cp->program.sh.data->InfoLog, error_str); _mesa_problem(NULL, "Failed to compile compute shader: %s\n", error_str); diff --git a/src/mesa/drivers/dri/i965/brw_tcs.c b/src/mesa/drivers/dri/i965/brw_tcs.c index 858ecf99a84..64bfc40d4d1 100644 --- a/src/mesa/drivers/dri/i965/brw_tcs.c +++ b/src/mesa/drivers/dri/i965/brw_tcs.c @@ -249,7 +249,7 @@ brw_codegen_tcs_prog(struct brw_context *brw, struct brw_program *tcp, &program_size, &error_str); if (program == NULL) { if (tep) { - tep->program.sh.data->LinkStatus = false; + tep->program.sh.data->LinkStatus = linking_failure; ralloc_strcat(&tep->program.sh.data->InfoLog, error_str); } diff --git a/src/mesa/drivers/dri/i965/brw_tes.c b/src/mesa/drivers/dri/i965/brw_tes.c index cb12b9c5a69..3da53579ac0 100644 --- a/src/mesa/drivers/dri/i965/brw_tes.c +++ b/src/mesa/drivers/dri/i965/brw_tes.c @@ -124,7 +124,7 @@ brw_codegen_tes_prog(struct brw_context *brw, brw_compile_tes(compiler, brw, mem_ctx, key, &input_vue_map, &prog_data, nir, &tep->program, st_index, &program_size, &error_str); if (program == NULL) { - tep->program.sh.data->LinkStatus = false; + tep->program.sh.data->LinkStatus = linking_failure; ralloc_strcat(&tep->program.sh.data->InfoLog, error_str); _mesa_problem(NULL, "Failed to compile tessellation evaluation shader: " diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c index a8225801858..3f11a76506e 100644 --- a/src/mesa/drivers/dri/i965/brw_vs.c +++ b/src/mesa/drivers/dri/i965/brw_vs.c @@ -226,7 +226,7 @@ brw_codegen_vs_prog(struct brw_context *brw, st_index, &program_size, &error_str); if (program == NULL) { if (!vp->program.is_arb_asm) { - vp->program.sh.data->LinkStatus = false; + vp->program.sh.data->LinkStatus = linking_failure; ralloc_strcat(&vp->program.sh.data->InfoLog, error_str); } diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index a774720202a..4a07c14e807 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -194,7 +194,7 @@ brw_codegen_wm_prog(struct brw_context *brw, if (program == NULL) { if (!fp->program.is_arb_asm) { - fp->program.sh.data->LinkStatus = false; + fp->program.sh.data->LinkStatus = linking_failure; ralloc_strcat(&fp->program.sh.data->InfoLog, error_str); } |