From 3cc3ba2e8fa4c943e125064f2df3c36efe83c186 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Sun, 11 Aug 2024 16:00:00 +0200 Subject: [PATCH] rusticl/kernel: make KernelArg::offset and KernelArg::binding proper u32 values Part-of: --- src/gallium/frontends/rusticl/core/kernel.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gallium/frontends/rusticl/core/kernel.rs b/src/gallium/frontends/rusticl/core/kernel.rs index d40aee7a967..39b557fc3e2 100644 --- a/src/gallium/frontends/rusticl/core/kernel.rs +++ b/src/gallium/frontends/rusticl/core/kernel.rs @@ -72,7 +72,7 @@ pub struct KernelArg { spirv: spirv::SPIRVKernelArg, pub kind: KernelArgType, /// The offset into the input buffer - offset: usize, + offset: u32, /// The actual binding slot binding: u32, pub dead: bool, @@ -149,7 +149,7 @@ impl KernelArg { nir_variable_mode::nir_var_uniform | nir_variable_mode::nir_var_image, ) { if let Some(arg) = args.get_mut(var.data.location as usize) { - arg.offset = var.data.driver_location as usize; + arg.offset = var.data.driver_location; arg.binding = var.data.binding; arg.dead = false; } else { @@ -167,8 +167,8 @@ impl KernelArg { for arg in args { arg.spirv.serialize(blob); - blob_write_uint16(blob, arg.offset as u16); - blob_write_uint16(blob, arg.binding as u16); + blob_write_uint32(blob, arg.offset); + blob_write_uint32(blob, arg.binding); blob_write_uint8(blob, arg.dead.into()); match arg.kind { KernelArgType::Constant(size) => { @@ -194,8 +194,8 @@ impl KernelArg { for _ in 0..len { let spirv = spirv::SPIRVKernelArg::deserialize(blob)?; - let offset = blob_read_uint16(blob) as usize; - let binding = blob_read_uint16(blob) as u32; + let offset = blob_read_uint32(blob); + let binding = blob_read_uint32(blob); let dead = blob_read_uint8(blob) != 0; let kind = match blob_read_uint8(blob) { @@ -1119,7 +1119,7 @@ impl Kernel { && arg.kind != KernelArgType::Texture && arg.kind != KernelArgType::Sampler { - input.resize(arg.offset, 0); + input.resize(arg.offset as usize, 0); } match val.as_ref().unwrap() { KernelArgValue::Constant(c) => input.extend_from_slice(c),