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 +4 -4
- data/Gemfile.lock +2 -2
- data/lib/fiddle_ext.rb +1 -1
- data/lib/vulkan/buffer.rb +4 -0
- data/lib/vulkan/buffer_memory.rb +9 -0
- data/lib/vulkan/buffer_memory_barrier.rb +43 -0
- data/lib/vulkan/command_buffer.rb +7 -3
- data/lib/vulkan/image_memory.rb +5 -0
- data/lib/vulkan/logical_device.rb +12 -0
- data/lib/vulkan/memory.rb +1 -4
- data/lib/vulkan/memory_barrier.rb +23 -0
- data/lib/vulkan/version.rb +1 -1
- data/lib/vulkan.rb +2 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c23ff63e2897285a423943889a3e200b4c61ec661507d74754da2050ba380e20
|
4
|
+
data.tar.gz: '09c257d2f083228cd9bf5fcc6c6580b433bd93d0ee1427d1dd0a7d6c1ff63a2f'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04b2cc3fd71ce5e012f49d1b56311819aad7f04357ee71ed988c98da3ce043e2b85e278ad2231494194715170618305642f7744b590a9c36478fce54439cbdf2
|
7
|
+
data.tar.gz: 2262e2d1ffdaef49e54abeff40b1d9a133b41a9ce2e606830812a5b451c0a278f7bbdfa54e69ca5f4bcbfbd71cbed7b0cc053dd07e9e7464911656b186ff64bc
|
data/Gemfile.lock
CHANGED
data/lib/fiddle_ext.rb
CHANGED
data/lib/vulkan/buffer.rb
CHANGED
data/lib/vulkan/buffer_memory.rb
CHANGED
@@ -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
|
-
|
71
|
-
@
|
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
|
-
|
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
|
data/lib/vulkan/image_memory.rb
CHANGED
@@ -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
|
+
|
data/lib/vulkan/version.rb
CHANGED
data/lib/vulkan.rb
CHANGED
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.
|
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:
|
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.
|
301
|
+
rubygems_version: 3.5.0.dev
|
300
302
|
signing_key:
|
301
303
|
specification_version: 4
|
302
304
|
summary: Vulkan bindings for Ruby
|