opencl_ruby_ffi 0.6 → 0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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