!wAvQtPZgqUpkbHgXaM:matrix.org

Vulkano

80 Members
https://github.com/vulkano-rs/2 Servers

Load older messages


SenderMessageTime
30 Jan 2021
@csnewman-5e062883d73408ce4fd52457:gitter.imcsnewman (Chandler Newman)Redacted or Malformed Event12:08:27
2 Feb 2021
@chiba-57b0885540f3a6eec05f68c2:gitter.imchiba (chiba) joined the room.09:39:15
@chiba-57b0885540f3a6eec05f68c2:gitter.imchiba (chiba) Hello is there a headless example in Vulkano? 09:39:16
@faulesocke-5d2a2b8dd73408ce4fc5fb48:gitter.imfaulesocke (Faule Socke) joined the room.11:03:28
@faulesocke-5d2a2b8dd73408ce4fc5fb48:gitter.imfaulesocke (Faule Socke) @wangranca you don't have to, vulkano does this automatically for you. 11:03:28
@faulesocke-5d2a2b8dd73408ce4fc5fb48:gitter.imfaulesocke (Faule Socke) @ChousX try Framebuffer::start(rp.clone()).add(swapchain_images[i].clone()).unwrap().build().unwrap() 11:13:23
@faulesocke-5d2a2b8dd73408ce4fc5fb48:gitter.imfaulesocke (Faule Socke) that creates a framebuffer you can use for drawing into the corresponding swapchain image 11:14:05
24 Feb 2021
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) joined the room.11:02:56
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) Hi folks. I have a question about vulkano_shaders if I may please? 11:02:57
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) I'd like to build a shader programatically - have the text for the GLSL loaded in. I'm not sure how to go about that as it seems vulkano-shaders want you to hardcode the shader into a mod. 11:03:56
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) I think the big problem I'm having is this line:
codegen::reflect("Shader", content.as_binary(), input.types_meta, input.dump) .unwrap() .into()
11:08:15
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) * I think the big problem I'm having is this line:
codegen::reflect("Shader", content.as_binary(), input.types_meta, input.dump)
.unwrap()
.into()
11:08:38
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) * I think the big problem I'm having is this line:
'''codegen::reflect("Shader", content.as_binary(), input.types_meta, input.dump)
.unwrap()
.into()'''
11:08:58
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) * I think the big problem I'm having is this line:
codegen::reflect("Shader", content.as_binary(), input.types_meta, input.dump) .unwrap() .into()
11:09:41
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) Essentially, whatever this spits out, I'd like to capture. But it gets caught inside a mod. I wonder, is this being generated at compile time? Having a difficult time deciphering what this macro is doing 11:11:01
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) Ideally, I'd like to pass a string into a function and get a variable back that represents my shader, for use in other parts of the vulkano pipeline. It looks like this might be quite a hack to do with vulkano_shaders 11:51:31
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) Looks like this might be useful: https://github.com/vulkano-rs/vulkano/blob/master/examples/src/bin/runtime-shader/main.rs 11:54:08
@onidaito-57c43b5140f3a6eec061ea5b:gitter.imOniDaito (Benjamin Blundell) Yes, this is perhaps more what I'm looking for. Panic over. 12:08:01
@fdem234:matrix.orgfdem234 joined the room.17:03:03
25 Feb 2021
@shiraori:matrix.orgshiraori joined the room.20:37:32
@shiraori:matrix.orgshiraoriHello! I was trying to work with the openxr crate (https://crates.io/crates/openxr), but it wraps some of the resource creation (in particular, it wraps instance, physical device, and swapchain initialization). What is the "correct" way to construct the corresponding vulkano types from the raw handles that openxr (or any other api) returns?21:02:49
26 Feb 2021
@riangoossens-5e0750f9d73408ce4fd534a9:gitter.imRianGoossens (RianGoossens) joined the room.14:03:21
@riangoossens-5e0750f9d73408ce4fd534a9:gitter.imRianGoossens (RianGoossens)Redacted or Malformed Event14:03:22
27 Feb 2021
@derivator-603aa83e6da037398463b8f6:gitter.imderivator (derivator) joined the room.20:27:06
@derivator-603aa83e6da037398463b8f6:gitter.imderivator (derivator)

Hey :)

basically i can't figure out how to use a [u8; 4] instead of a [f32; 4] in the vertex struct, since i can't figure out where to specify the attribute's format

I have the same problem, did you find a solution @ChevyRay ?

20:27:07
28 Feb 2021
@aaaaaargh:matrix.orgRĂ©mi Lespinet joined the room.10:00:10
5 Mar 2021
@eliah_lakhin_twitter-5d52cbfad73408ce4fc858ba:gitter.imeliah_lakhin_twitter (Eliah Lakhin) joined the room.06:43:08
@eliah_lakhin_twitter-5d52cbfad73408ce4fc858ba:gitter.imeliah_lakhin_twitter (Eliah Lakhin)

@OniDaito Hi!

Sorry for delay with the answer.

Yes, Runtime shader example is one of the options. Current primary use-case of Vulkano is to use precompiled shaders(built in compile time through the shader! macros), but there is a way to load them manually too in which case one will have to configure all descriptors and layouts manually(which is unsafe).

On general note, Vulkano is following a principle(but is not enforces it too strongly) that all shaders normally should be loaded in the beginning and be prepared beforehand. In this case the end-user can gain maximal benefits of GPU capabilities through Vulkan API. GPUs themselves are not very tolerate to shader programs reloading, as it breaks the entire pipeline and all related stuff set up by the device on pipeline creation. Basically GPUs are designed for static programs. That's why Vulkano in turn trying to follow the same approach.

This is, however, not always possible, and there could be edge cases when the API user might want to generate shader's code on the fly. One of the possibility as I mentioned is to use the approach from Runtime shader example. But it could be difficult to maintain. Another approach(a limited one, though) is to use Specialization Constants. The API user in fact can prepare large code of the shader that would specialize depending on Specialization Constants values. One can even organize branching depending on the values of constants, the shader loader will optimizes particular specialization statically and eliminate dead code control flows not covered by particular specilization.

Just as an idea for you. Please take a look at the specialization constants examples in repository for more details.

06:43:09
@eliah_lakhin_twitter-5d52cbfad73408ce4fc858ba:gitter.imeliah_lakhin_twitter (Eliah Lakhin) *

@OniDaito Hi!

Sorry for delay with the answer.

Yes, Runtime shader example is one of the options. Current primary use-case of Vulkano is to use precompiled shaders(built in compile time through the shader! macros), but there is a way to load them manually too in which case one will have to configure all descriptors and layouts manually(which is unsafe).

On general note, Vulkano is following a principle(but is not enforces it too strongly) that all shaders normally should be loaded in the beginning and be prepared beforehand. In this case the end-user can gain maximal benefits of GPU capabilities through Vulkan API. GPUs themselves are not very tolerate to shader programs reloading, as it breaks the entire pipeline and all related stuff set up by the device on pipeline creation. Basically GPUs are designed for static programs. That's why Vulkano in turn trying to follow the same approach.

This is, however, not always possible, and there could be edge cases when the API user might want to generate shader's code on the fly. One of the possibility as I mentioned is to use the approach from Runtime shader example. But it could be difficult to maintain. Another approach(a limited one, though) is to use Specialization Constants. The API user in fact can prepare large code of the shader that would specialize depending on Specialization Constants values. One can even organize branching depending on the values of constants, the shader loader will optimizes particular specialization statically and eliminate dead code control flows not covered by particular specilization.

Just as an idea for you. Please take a look at the specialization constants examples in repository for more details.

06:44:58
@eliah_lakhin_twitter-5d52cbfad73408ce4fc858ba:gitter.imeliah_lakhin_twitter (Eliah Lakhin)

@OniDaito, @shiraori:matrix.org , @derivator

Dear fellows,

I have to apologize I'm not able to maintain the chat regularly. I'm visiting it rarely and noticing new topics came days if not weeks ago. This is my bad, but I just don't have enough resources to response on time. Perhaps, it would be more beneficial for you and for the community if you raise questions and topics in Vulkano repository Issues section. Me and other regular users are watching it more regularly.

06:50:47

There are no newer messages yet.


Back to Room List