Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Vulkan back-end #629

Closed
kvark opened this issue Mar 4, 2015 · 1 comment

Comments

@kvark
Copy link
Member

commented Mar 4, 2015

Relates to #352

Vulcan specs are yet to be released, but the architecture overview looks very promising. Or, as @csherratt said:

From 35,000 feet vulkan and gfx look like a match made in heaven. The problem is vulkan can only be viewed from 35,000 feet.

In terms of rendering commands, they expose command buffers and show a diagram that is very similar to what I drawn a while ago for the presentation. VRAM and resource management is still an open question (not limited to Vulcan), but overall I expect Vulcan backend to be much lighter and more efficient than OpenGL one.

Links:

@kvark kvark changed the title Add Vulcan device back-end Add Vulkan back-end Feb 16, 2016

@brendanzab brendanzab referenced this issue Feb 16, 2016

Closed

Implement more backends #352

5 of 8 tasks complete
@Kagami

This comment has been minimized.

Copy link

commented Feb 16, 2016

It's out! :)

@kvark kvark added this to the Prime Time milestone Mar 1, 2016

@sectopod sectopod referenced this issue May 29, 2016

Merged

Vulkan backend (first steps) #983

4 of 7 tasks complete

@homu homu closed this in #983 Aug 12, 2016

homu added a commit that referenced this issue Aug 12, 2016

Auto merge of #983 - sectopod:vulkan, r=kvark
Vulkan backend (first steps)

Closes #629

This is vastly incomplete, far from a working prototype. I'm getting more and more blocked, so figured it wouldn't harm sharing at least what I got so far:

- [x] textures with SRV/RTV/UAV
- [x] buffers, no views
- [ ] programs with reflection
- [x] pipeline states
- [x] descriptor layouts/sets
- [ ] rendering
- [ ] resource updates

There is a lot of work left to do, and I expect non-trivial changes to get the proper async rendering. E.g. our command buffer may carry multiple Vulkan command buffers and use them in a ring. Need to track when the GPU finishes using resources too.

It doesn't help that `winit` doesn't support XCB (only Xlib), so I had to use xcb-rs directly in the meantime.

Currently getting this upon running the cube example:
>WARNING: Unsupported SPIR-V Capability
ASSERT: Scalar FS validation failed!
mov(8) vgrf4+2.0:F, vgrf5+2.0:F
../../../../../../../src/mesa/drivers/dri/i965/brw_fs_validate.cpp:47: inst->dst.reg_offset + inst->regs_written <= alloc.sizes[inst->dst.nr]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.