opencl_ruby_ffi 0.6 → 0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -102,6 +102,7 @@ module OpenCL
102
102
  def self.enqueue_map_image( command_queue, image, map_flags, options = {} )
103
103
  blocking = OpenCL::FALSE
104
104
  blocking = OpenCL::TRUE if options[:blocking] or options[:blocking_map]
105
+ flags = OpenCL.get_flags( {:flags => map_flags} )
105
106
 
106
107
  origin, region = OpenCL.get_origin_region( image, options, :origin, :region )
107
108
 
@@ -110,7 +111,7 @@ module OpenCL
110
111
  image_slice_pitch = FFI::MemoryPointer::new( :size_t )
111
112
  event = FFI::MemoryPointer::new( OpenCL::Event )
112
113
  error = FFI::MemoryPointer::new( :cl_int )
113
- OpenCL.clEnqueueMapImage( command_queue, image, blocking, map_flags, origin, region, image_row_pitch, image_slice_pitch, num_events, events, event, error )
114
+ OpenCL.clEnqueueMapImage( command_queue, image, blocking, flags, origin, region, image_row_pitch, image_slice_pitch, num_events, events, event, error )
114
115
  OpenCL.error_check( error.read_cl_int )
115
116
  ev = OpenCL::Event::new( event.read_ptr, false )
116
117
  return [ev, ptr, image_row_pitch.read_size_t, image_slice_pitch.read_size_t]
@@ -141,6 +142,8 @@ module OpenCL
141
142
  def self.enqueue_map_buffer( command_queue, buffer, map_flags, options = {} )
142
143
  blocking = OpenCL::FALSE
143
144
  blocking = OpenCL::TRUE if options[:blocking] or options[:blocking_map]
145
+ flags = OpenCL.get_flags( {:flags => map_flags} )
146
+
144
147
  offset = 0
145
148
  offset = options[:offset] if options[:offset]
146
149
  size = buffer.size - offset
@@ -148,7 +151,7 @@ module OpenCL
148
151
  num_events, events = OpenCL.get_event_wait_list( options )
149
152
  event = FFI::MemoryPointer::new( OpenCL::Event )
150
153
  error = FFI::MemoryPointer::new( :cl_int )
151
- ptr = OpenCL.clEnqueueMapBuffer( command_queue, buffer, blocking, map_flags, offset, size, num_events, events, error )
154
+ ptr = OpenCL.clEnqueueMapBuffer( command_queue, buffer, blocking, flags, offset, size, num_events, events, error )
152
155
  OpenCL.error_check( error.read_cl_int )
153
156
  ev = OpenCL::Event::new( event.read_ptr, false )
154
157
  return [ev, ptr]
@@ -14,14 +14,15 @@ module OpenCL
14
14
  # * +:user_data+ - an FFI::Pointer or an object that can be converted into one using to_ptr. The pointer is passed to the callback.
15
15
  def self.create_context(devices, options = {}, &block)
16
16
  @@callbacks.push( block ) if block
17
- pointer = FFI::MemoryPointer::new( Device, devices.size)
18
- devices.size.times { |indx|
19
- pointer.put_pointer(indx, devices[indx])
17
+ devs = [devices].flatten
18
+ pointer = FFI::MemoryPointer::new( Device, devs.size)
19
+ devs.size.times { |indx|
20
+ pointer.put_pointer(indx, devs[indx])
20
21
  }
21
22
  properties = OpenCL.get_context_properties( options )
22
23
  user_data = options[:user_data]
23
24
  error = FFI::MemoryPointer::new( :cl_int )
24
- ptr = OpenCL.clCreateContext(properties, devices.size, pointer, block, user_data, error)
25
+ ptr = OpenCL.clCreateContext(properties, devs.size, pointer, block, user_data, error)
25
26
  OpenCL.error_check(error.read_cl_int)
26
27
  return OpenCL::Context::new(ptr, false)
27
28
  end
@@ -10,7 +10,7 @@ module OpenCL
10
10
  # ==== Returns
11
11
  #
12
12
  # an Array of Device
13
- def self.create_sub_devices( in_device, properties = [OpenCL::Device::PARTITION_BY_AFFINITY_DOMAIN, OpenCL::Device::AFFINITY_DOMAIN_NEXT_PARTITIONABLE] )
13
+ def self.create_sub_devices( in_device, properties )
14
14
  OpenCL.error_check(OpenCL::INVALID_OPERATION) if in_device.platform.version_number < 1.2
15
15
  props = FFI::MemoryPointer::new( :cl_device_partition_property, properties.length + 1 )
16
16
  properties.each_with_index { |e,i|
@@ -189,7 +189,7 @@ module OpenCL
189
189
  # * +strings+ - a single or an Array of String repesenting the program source code
190
190
  def self.create_program_with_source(context, strings)
191
191
  strs = nil
192
- if strings == nil then
192
+ if not strings then
193
193
  raise OpenCL::Error::new(OpenCL::Error.getErrorString(OpenCL::Error::INVALID_VALUE))
194
194
  else
195
195
  strs = [strings].flatten
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'opencl_ruby_ffi'
3
- s.version = "0.6"
3
+ s.version = "0.7"
4
4
  s.author = "Brice Videau"
5
5
  s.email = "brice.videau@imag.fr"
6
6
  s.homepage = "https://forge.imag.fr/projects/opencl-ruby/"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opencl_ruby_ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.6'
4
+ version: '0.7'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-26 00:00:00.000000000 Z
12
+ date: 2014-03-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: narray