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

Vulkan backend (first steps) #983

Merged
merged 69 commits into from
Aug 12, 2016
Merged

Vulkan backend (first steps) #983

merged 69 commits into from
Aug 12, 2016

Conversation

sectopod
Copy link
Contributor

@sectopod sectopod commented May 29, 2016

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:

  • textures with SRV/RTV/UAV
  • buffers, no views
  • programs with reflection
  • pipeline states
  • 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]

@homu
Copy link
Contributor

homu commented Jun 22, 2016

☔ The latest upstream changes (presumably #993) made this pull request unmergeable. Please resolve the merge conflicts.

@sectopod sectopod changed the title [WIP] Vulkan backend Vulkan backend (first steps) Aug 10, 2016
@sectopod
Copy link
Contributor Author

Ok, I merged up and readied the change for merging. It's still from being usable, but is quite a lot of logic already in there - we might as well split it into multiple PRs to avoid the merge hell. Requesting review/merge (after Travis is green, of course).

@kvark
Copy link
Member

kvark commented Aug 10, 2016

Let us know if anyone wants to take a deep look into this PR. Otherwise - I'm merging when CI is green.

@kvark
Copy link
Member

kvark commented Aug 12, 2016

Wonderful! Fasten your seat belts:
@homu r+

@homu
Copy link
Contributor

homu commented Aug 12, 2016

📌 Commit 7e0767b has been approved by kvark

@homu homu merged commit 7e0767b into gfx-rs:master Aug 12, 2016
homu added a commit that referenced this pull request Aug 12, 2016
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]
@homu
Copy link
Contributor

homu commented Aug 12, 2016

⚡ Test exempted - status

adamnemecek pushed a commit to adamnemecek/gfx that referenced this pull request Apr 1, 2021
984: Fix locking of device lifetime tracker on resource drop r=kvark a=kvark

**Connections**
Fixes the player hang in gfx-rs#983

**Description**
It turns out the current type-level protection from locking device's lifetime tracker is not working properly. TODO is left.

**Testing**
Tested on the trace from gfx-rs#983

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants