vulkan-ruby 1.3.207.1 → 1.3.207.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59d591fd04e1adef036876ac8a2c9871ea703bb8fdd9485fe5388cc5772ccd5f
4
- data.tar.gz: cc577ad17b4540b048aea1617f515133c3993bcd440fe3f515fbab612a4e951e
3
+ metadata.gz: c23ff63e2897285a423943889a3e200b4c61ec661507d74754da2050ba380e20
4
+ data.tar.gz: '09c257d2f083228cd9bf5fcc6c6580b433bd93d0ee1427d1dd0a7d6c1ff63a2f'
5
5
  SHA512:
6
- metadata.gz: a869512f082dcf3e1ff46ea7c1f2b8535e5fca84382bb0719514a1e7541b9dbc78d44bd932a171702e38f6ff10adecebac436c6aa5485ee152e1b235ec8ce93e
7
- data.tar.gz: 85206600b3753bf6682bfb0162d8e7ad4d7f68399720656f31b9e5907b7f2bbb6ec3753b84904f97862487706c7d9a674fbcd8416584459d4f4769ed5cb42e63
6
+ metadata.gz: 04b2cc3fd71ce5e012f49d1b56311819aad7f04357ee71ed988c98da3ce043e2b85e278ad2231494194715170618305642f7744b590a9c36478fce54439cbdf2
7
+ data.tar.gz: 2262e2d1ffdaef49e54abeff40b1d9a133b41a9ce2e606830812a5b451c0a278f7bbdfa54e69ca5f4bcbfbd71cbed7b0cc053dd07e9e7464911656b186ff64bc
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vulkan-ruby (1.3.207.1)
4
+ vulkan-ruby (1.3.207.4)
5
5
  sorted_set
6
6
 
7
7
  GEM
@@ -50,4 +50,4 @@ DEPENDENCIES
50
50
  vulkan-ruby!
51
51
 
52
52
  BUNDLED WITH
53
- 2.2.0.rc.1
53
+ 2.5.17
data/lib/fiddle_ext.rb CHANGED
@@ -8,7 +8,7 @@ module Fiddle
8
8
  # whichever is smaller.
9
9
  def copy_from(other)
10
10
  size = self.size > other.size ? other.size : self.size
11
- self[0, size] = other[0, size]
11
+ self[0, size] = other
12
12
  self
13
13
  end
14
14
  end
data/lib/vulkan/buffer.rb CHANGED
@@ -31,6 +31,10 @@ module Vulkan
31
31
  finalize_with @vk, :vkDestroyBuffer, vk.device, @handle, nil
32
32
  end
33
33
 
34
+ def create_barrier(**args)
35
+ @memory.create_barrier(**args)
36
+ end
37
+
34
38
  def map(*args, &block)
35
39
  memory.map(*args, &block)
36
40
  end
@@ -1,5 +1,10 @@
1
1
  module Vulkan
2
2
  class BufferMemory < Memory
3
+ def initialize(vk, physical_device, owner:, **options)
4
+ @owner = owner
5
+ super(vk, physical_device, **options)
6
+ end
7
+
3
8
  def query_memory_requirements
4
9
  VkMemoryRequirements.malloc.tap do |req|
5
10
  @vk.vkGetBufferMemoryRequirements(@vk.device, @owner.to_ptr, req)
@@ -9,5 +14,9 @@ module Vulkan
9
14
  def bind
10
15
  @vk.vkBindBufferMemory(@vk.device, @owner.to_ptr, to_ptr, 0);
11
16
  end
17
+
18
+ def create_barrier(**args)
19
+ Vulkan::BufferMemoryBarrier.new(buffer: @owner, **args)
20
+ end
12
21
  end
13
22
  end
@@ -0,0 +1,43 @@
1
+ module Vulkan
2
+ class BufferMemoryBarrier
3
+ include Vulkan::Conversions
4
+
5
+ def initialize(src_access:,
6
+ dst_access:,
7
+ src_queue_family_index: VK_QUEUE_FAMILY_IGNORED,
8
+ dst_queue_family_index: VK_QUEUE_FAMILY_IGNORED,
9
+ buffer:,
10
+ offset: 0,
11
+ size: VK_WHOLE_SIZE)
12
+ @struct = VkBufferMemoryBarrier.malloc
13
+ @struct.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
14
+ self.src_access = src_access
15
+ self.dst_access = dst_access
16
+ self.src_queue_family_index = src_queue_family_index
17
+ self.dst_queue_family_index = dst_queue_family_index
18
+ self.buffer = buffer
19
+ self.offset = offset
20
+ self.size = size
21
+ end
22
+
23
+ def src_access; @src_access; end
24
+ def src_access=(s); @src_access = s; @struct.srcAccessMask = syms_to_access_mask(s); end
25
+ def dst_access; @dst_access; end
26
+ def dst_access=(s); @dst_access = s; @struct.dstAccessMask = syms_to_access_mask(s); end
27
+ def src_queue_family_index; @struct.srcQueueFamilyIndex; end
28
+ def src_queue_family_index=(s); @struct.srcQueueFamilyIndex = s; end
29
+ def dst_queue_family_index; @struct.dstQueueFamilyIndex; end
30
+ def dst_queue_family_index=(s); @struct.dstQueueFamilyIndex = s; end
31
+ def buffer; @buffer; end
32
+ def buffer=(b); @buffer = b; @struct.buffer = b.to_ptr; end
33
+ def offset; @struct.offset; end
34
+ def offset=(o); @struct.offset = o; end
35
+ def size; @struct.size; end
36
+ def size=(s); @struct.size = s; end
37
+
38
+ def to_ptr
39
+ @struct.to_ptr
40
+ end
41
+ end
42
+ end
43
+
@@ -67,8 +67,10 @@ module Vulkan
67
67
  end
68
68
 
69
69
  def copy_buffer(src, dst, regions: [{size: src.size}])
70
- copy_regions_p = Vulkan.struct("regions[#{regions.size}]" => VkBufferCopy).malloc
71
- @refs << copy_regions_p
70
+ @copy_buffer_copy_regions_p ||= {}
71
+ copy_regions_p = @copy_buffer_copy_regions_p[regions.size] ||=
72
+ Vulkan.struct("regions[#{regions.size}]" => VkBufferCopy).malloc
73
+ # @refs << copy_regions_p
72
74
  regions.each_with_index do |region, i|
73
75
  copy_regions_p.regions[i].srcOffset = region[:src_offset] if region[:src_offset]
74
76
  copy_regions_p.regions[i].dstOffset = region[:dst_offset] if region[:dst_offset]
@@ -324,7 +326,9 @@ module Vulkan
324
326
  offsets ||= vertex_buffers.map { 0 }
325
327
  @refs.concat vertex_buffers
326
328
  buffers_p = array_of_pointers(vertex_buffers)
327
- offsets_p = Vulkan.struct("VkDeviceSize offsets[#{offsets.size}]").malloc
329
+ @bind_vertex_buffers_offsets_p ||= {}
330
+ offsets_p = @bind_vertex_buffers_offsets_p[offsets.size] ||=
331
+ Vulkan.struct("VkDeviceSize offsets[#{offsets.size}]").malloc
328
332
  offsets.each_with_index { |o, i| offsets_p.offsets[i] = o }
329
333
  @vk.vkCmdBindVertexBuffers(to_ptr, first_binding, binding_count, buffers_p, offsets_p)
330
334
  end
@@ -1,5 +1,10 @@
1
1
  module Vulkan
2
2
  class ImageMemory < Memory
3
+ def initialize(vk, physical_device, owner:, **options)
4
+ @owner = owner
5
+ super(vk, physical_device, **options)
6
+ end
7
+
3
8
  def query_memory_requirements
4
9
  VkMemoryRequirements.malloc.tap do |req|
5
10
  @vk.vkGetImageMemoryRequirements(@vk.device, @owner.to_ptr, req)
@@ -154,6 +154,18 @@ module Vulkan
154
154
  Vulkan::Framebuffer.new(@vk, **args)
155
155
  end
156
156
 
157
+ def create_buffer_memory_barrier(**args)
158
+ Vulkan::BufferMemoryBarrier.new(**args)
159
+ end
160
+
161
+ def create_memory(**args)
162
+ Vulkan::Memory.new(@vk, physical_device, **args)
163
+ end
164
+
165
+ def create_memory_barrier(**args)
166
+ Vulkan::MemoryBarrier.new(**args)
167
+ end
168
+
157
169
  def hexaddr
158
170
  to_ptr.to_i.to_s(16)
159
171
  end
data/lib/vulkan/memory.rb CHANGED
@@ -7,14 +7,11 @@ module Vulkan
7
7
  attr_reader :requirements
8
8
  attr_reader :physical_device
9
9
 
10
- def initialize(vk, physical_device,
11
- owner:,
12
- properties: [:host_visible])
10
+ def initialize(vk, physical_device, properties: [:host_visible])
13
11
  @range_array = nil
14
12
  @vk = vk
15
13
  @physical_device = physical_device
16
14
  @properties = syms_to_memory_properties(properties)
17
- @owner = owner
18
15
  @mapped = Vulkan.create_value('void *', nil)
19
16
 
20
17
  @requirements = query_memory_requirements
@@ -0,0 +1,23 @@
1
+ module Vulkan
2
+ class MemoryBarrier
3
+ include Vulkan::Conversions
4
+
5
+ def initialize(src_access:,
6
+ dst_access:)
7
+ @struct = VkMemoryBarrier.malloc
8
+ @struct.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER
9
+ self.src_access = src_access
10
+ self.dst_access = dst_access
11
+ end
12
+
13
+ def src_access; @src_access; end
14
+ def src_access=(s); @src_access = s; @struct.srcAccessMask = syms_to_access_mask(s); end
15
+ def dst_access; @dst_access; end
16
+ def dst_access=(s); @dst_access = s; @struct.dstAccessMask = syms_to_access_mask(s); end
17
+
18
+ def to_ptr
19
+ @struct.to_ptr
20
+ end
21
+ end
22
+ end
23
+
@@ -1,7 +1,7 @@
1
1
  require 'vulkan/generated/version'
2
2
 
3
3
  module Vulkan
4
- VULKAN_RUBY_VERSION = [ 1 ]
4
+ VULKAN_RUBY_VERSION = [ 4 ]
5
5
 
6
6
  VERSION = [ VK_API_VERSION_MAJOR,
7
7
  VK_API_VERSION_MINOR,
data/lib/vulkan.rb CHANGED
@@ -89,3 +89,5 @@ require 'vulkan/memory'
89
89
  require 'vulkan/buffer_memory'
90
90
  require 'vulkan/image_memory'
91
91
  require 'vulkan/sampler'
92
+ require 'vulkan/memory_barrier'
93
+ require 'vulkan/buffer_memory_barrier'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vulkan-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.207.1
4
+ version: 1.3.207.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin MacKenzie IV
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-11 00:00:00.000000000 Z
11
+ date: 2024-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -220,6 +220,7 @@ files:
220
220
  - lib/vulkan.rb
221
221
  - lib/vulkan/buffer.rb
222
222
  - lib/vulkan/buffer_memory.rb
223
+ - lib/vulkan/buffer_memory_barrier.rb
223
224
  - lib/vulkan/checks.rb
224
225
  - lib/vulkan/command_buffer.rb
225
226
  - lib/vulkan/command_pool.rb
@@ -246,6 +247,7 @@ files:
246
247
  - lib/vulkan/logical_device.rb
247
248
  - lib/vulkan/manual_types.rb
248
249
  - lib/vulkan/memory.rb
250
+ - lib/vulkan/memory_barrier.rb
249
251
  - lib/vulkan/mock.rb
250
252
  - lib/vulkan/mock/swapchain_surface_info.rb
251
253
  - lib/vulkan/physical_device.rb
@@ -296,7 +298,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
298
  - !ruby/object:Gem::Version
297
299
  version: '0'
298
300
  requirements: []
299
- rubygems_version: 3.3.7
301
+ rubygems_version: 3.5.0.dev
300
302
  signing_key:
301
303
  specification_version: 4
302
304
  summary: Vulkan bindings for Ruby