diff --git a/src/intel/compiler/brw_device_sha1_gen_c.py b/src/intel/compiler/brw_device_sha1_gen_c.py index 06aaa3b5478..be4ce3ac4f3 100755 --- a/src/intel/compiler/brw_device_sha1_gen_c.py +++ b/src/intel/compiler/brw_device_sha1_gen_c.py @@ -47,7 +47,12 @@ void brw_device_sha1_update(struct mesa_sha1 *ctx, const struct intel_device_info *devinfo) { % for member in compiler_fields: +% if member.ray_tracing_field: + if (devinfo->has_ray_tracing) + SHA_UPDATE_FIELD(${member.name}); +% else: SHA_UPDATE_FIELD(${member.name}); +% endif % endfor } diff --git a/src/intel/dev/intel_device_info.py b/src/intel/dev/intel_device_info.py index d0587c1f79c..63a99a2a794 100644 --- a/src/intel/dev/intel_device_info.py +++ b/src/intel/dev/intel_device_info.py @@ -65,13 +65,16 @@ class Enum: class Member: """Stores details needed to declare and serialize the member of a struct.""" - def __init__(self, member_type, name, array=None, compiler_field=False, comment=None): + def __init__(self, member_type, name, array=None, + compiler_field=False, ray_tracing_field=False, + comment=None): self.member_type = member_type self.name = name self.array = array # indicates whether this field is used by the compiler, and whether it # should be included in the shader compiler cache hash function. self.compiler_field = compiler_field + self.ray_tracing_field = ray_tracing_field self.comment=comment class Struct: @@ -362,6 +365,7 @@ Struct("intel_device_info", Member("uint8_t", "subslice_masks", array="INTEL_DEVICE_MAX_SLICES * DIV_ROUND_UP(INTEL_DEVICE_MAX_SUBSLICES, 8)", compiler_field=True, + ray_tracing_field=True, comment=dedent("""\ An array of bit mask of the subslices available, use subslice_slice_stride to access this array.""")),