summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2013-07-21 00:49:54 +0200
committerFrancisco Jerez <currojerez@riseup.net>2013-07-21 19:13:39 +0200
commit734b340bf963641c49b4cad8f4483c0996bfb559 (patch)
tree8a33b2631e5eedcffc0837dcfc02d880e8b2c11f
parent1e6fa198279416b1c512033358a822e1ed20831d (diff)
clover: Add kernel argument fields to allow differing host/target data types.
Loosely based on a similar patch by Tom Stellard.
-rw-r--r--src/gallium/state_trackers/clover/core/module.hpp25
1 files 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 {