From 734b340bf963641c49b4cad8f4483c0996bfb559 Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Sun, 21 Jul 2013 00:49:54 +0200 Subject: clover: Add kernel argument fields to allow differing host/target data types. Loosely based on a similar patch by Tom Stellard. --- src/gallium/state_trackers/clover/core/module.hpp | 25 +++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/gallium/state_trackers/clover/core/module.hpp b/src/gallium/state_trackers/clover/core/module.hpp index 88dfc9f3fc9..e25524eb3dd 100644 --- a/src/gallium/state_trackers/clover/core/module.hpp +++ b/src/gallium/state_trackers/clover/core/module.hpp @@ -68,11 +68,32 @@ namespace clover { sampler }; - argument(enum type type, size_t size) : type(type), size(size) { } - argument() : type(scalar), size(0) { } + enum ext_type { + zero_ext, + sign_ext + }; + + argument(enum type type, size_t size, + size_t target_size, size_t target_align, + enum ext_type ext_type) : + type(type), size(size), + target_size(target_size), target_align(target_align), + ext_type(ext_type) { } + + argument(enum type type, size_t size) : + type(type), size(size), + target_size(size), target_align(1), + ext_type(zero_ext) { } + + argument() : type(scalar), size(0), + target_size(0), target_align(1), + ext_type(zero_ext) { } type type; size_t size; + size_t target_size; + size_t target_align; + ext_type ext_type; }; struct symbol { -- cgit v1.2.3