/
redgpu
/
clspv
Обзор
Документация
Войти
/
redgpu
/
clspv
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
test/DirectResourceAccess/inconsistent_kernel_args_global.cl
33 строки
2 KB
alan-baker
Change default of -cluster-pod-kernel-args (#554)
08 апр 2020, 03:37
Не верифицирован
08 апр 2020, 03:37
374ce1a
Код
Авторство
О чём код?
// RUN: clspv %s -o %t.spv -keep-unused-arguments -cluster-pod-kernel-args=0 // RUN: spirv-dis -o %t.spvasm %t.spv // RUN: FileCheck %s < %t.spvasm // RUN: spirv-val --target-env vulkan1.0 %t.spv // // RUN: clspv %s -o %t2.spv -cluster-pod-kernel-args=1 // RUN: spirv-dis -o %t2.spvasm %t2.spv // RUN: FileCheck --check-prefix=CLUSTER %s < %t2.spvasm // RUN: spirv-val --target-env vulkan1.0 %t2.spv void apple(global int *B, global int *A, int n) { A[n] = B[n + 2]; } kernel void foo(global int *A, global int *B, int n) { apple(B, A, n); } kernel void bar(global int *A, int n, global int *B) { apple(B, A, n); } // foo and bar differ in the second argument, so we can't do the optimization there. // CHECK: OpDecorate [[_20:%[0-9a-zA-Z_]+]] DescriptorSet 0 // CHECK: OpDecorate [[_20]] Binding 0 // CHECK-DAG: [[_void:%[0-9a-zA-Z_]+]] = OpTypeVoid // CHECK-DAG: [[_20]] = OpVariable {{.*}} StorageBuffer // CHECK: [[_25:%[0-9a-zA-Z_]+]] = OpFunction [[_void]] // CHECK: [[_26:%[0-9a-zA-Z_]+]] = OpFunctionParameter {{.*}} // CHECK: [[_27:%[0-9a-zA-Z_]+]] = OpFunctionParameter {{.*}} // CHECK: [[_31:%[0-9a-zA-Z_]+]] = OpPtrAccessChain {{.*}} [[_26]] // CHECK: [[_33:%[0-9a-zA-Z_]+]] = OpAccessChain {{.*}} [[_20]] // When kernel arguments are clustered, the optimization is valid beccause arguments match. // CLUSTER: [[int:%[a-zA-Z0-9_]+]] = OpTypeInt 32 0 // CLUSTER: [[ptr:%[a-zA-Z0-9_]+]] = OpTypePointer StorageBuffer [[int]] // CLUSTER-NOT: OpFunctionParameter [[ptr]] // CLUSTER: OpFunctionParameter [[int]] // CLUSTER-NOT: OpFunctionParameter [[ptr]]