nir: add shader_info::source_sha1, its initialization and printing
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869>
This commit is contained in:
@@ -29,6 +29,7 @@
|
|||||||
#include "compiler/shader_enums.h"
|
#include "compiler/shader_enums.h"
|
||||||
#include "util/half_float.h"
|
#include "util/half_float.h"
|
||||||
#include "util/memstream.h"
|
#include "util/memstream.h"
|
||||||
|
#include "util/mesa-sha1.h"
|
||||||
#include "vulkan/vulkan_core.h"
|
#include "vulkan/vulkan_core.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -1604,6 +1605,10 @@ nir_print_shader_annotated(nir_shader *shader, FILE *fp,
|
|||||||
|
|
||||||
fprintf(fp, "shader: %s\n", gl_shader_stage_name(shader->info.stage));
|
fprintf(fp, "shader: %s\n", gl_shader_stage_name(shader->info.stage));
|
||||||
|
|
||||||
|
fprintf(fp, "source_sha1: {");
|
||||||
|
_mesa_sha1_print(fp, shader->info.source_sha1);
|
||||||
|
fprintf(fp, "}\n");
|
||||||
|
|
||||||
if (shader->info.name)
|
if (shader->info.name)
|
||||||
fprintf(fp, "name: %s\n", shader->info.name);
|
fprintf(fp, "name: %s\n", shader->info.name);
|
||||||
|
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#define SHADER_INFO_H
|
#define SHADER_INFO_H
|
||||||
|
|
||||||
#include "util/bitset.h"
|
#include "util/bitset.h"
|
||||||
|
#include "util/sha1/sha1.h"
|
||||||
#include "shader_enums.h"
|
#include "shader_enums.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
@@ -125,6 +126,9 @@ typedef struct shader_info {
|
|||||||
/* Shader is internal, and should be ignored by things like NIR_PRINT */
|
/* Shader is internal, and should be ignored by things like NIR_PRINT */
|
||||||
bool internal;
|
bool internal;
|
||||||
|
|
||||||
|
/* SHA1 of the original source, used by shader detection in drivers. */
|
||||||
|
uint8_t source_sha1[SHA1_DIGEST_LENGTH];
|
||||||
|
|
||||||
/** The shader stage, such as MESA_SHADER_VERTEX. */
|
/** The shader stage, such as MESA_SHADER_VERTEX. */
|
||||||
gl_shader_stage stage:8;
|
gl_shader_stage stage:8;
|
||||||
|
|
||||||
|
@@ -769,6 +769,8 @@ st_link_nir(struct gl_context *ctx,
|
|||||||
prog->nir = glsl_to_nir(st->ctx, shader_program, shader->Stage, options);
|
prog->nir = glsl_to_nir(st->ctx, shader_program, shader->Stage, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memcpy(prog->nir->info.source_sha1, shader->linked_source_sha1,
|
||||||
|
SHA1_DIGEST_LENGTH);
|
||||||
st_nir_preprocess(st, prog, shader_program, shader->Stage);
|
st_nir_preprocess(st, prog, shader_program, shader->Stage);
|
||||||
|
|
||||||
if (options->lower_to_scalar) {
|
if (options->lower_to_scalar) {
|
||||||
|
Reference in New Issue
Block a user