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

[dx12] Increase max RTV allocations (or make it configurable). #1945

Closed
dati91 opened this issue Apr 17, 2018 · 4 comments · Fixed by #2110
Closed

[dx12] Increase max RTV allocations (or make it configurable). #1945

dati91 opened this issue Apr 17, 2018 · 4 comments · Fixed by #2110

Comments

@dati91
Copy link
Contributor

dati91 commented Apr 17, 2018

let max_rtvs = 256; // TODO

To run our test suite, we need more rtv allocated. Currently it is (a constant) 256.

@msiglreith
Copy link
Contributor

We need a way to handle these cpu descriptors in the longer term:

  1. (Currently used in rostkatze): Having a vector of fixed size cpu descriptor heads which will be filled up.
    Pro: Easy to implement
    Cons: Requires synchronization, additional work required to quickly check for free spaces

  2. Dynamically allocate cpu descriptor heaps on demand, motivated by the fact that cpu descriptor heaps are basically just designed to mirror the gpu heaps (nicer design). In particular, interesting for RTV and DSV as they are only needed for framebuffers, so have a fixed scope and can be batched together in case of multiple attachments. Only other use case for RTV and DSV would be depth clearing images outside of renderpasses, where we only specify an image and subresource range. This requires creating a RTV/DSV on the fly, but one might argue that these functions are slow-path.

@kvark kvark mentioned this issue Apr 19, 2018
3 tasks
bors bot added a commit that referenced this issue Apr 19, 2018
1954: [dx12] layer clears r=msiglreith a=kvark

Fixes #1943, works around #1945
PR checklist:
- [ ] `make` succeeds (on *nix)
- [x] `make reftests` succeeds
- [x] tested examples with the following backends: dx12

I found out that we didn't update the raw bit flag values in reftests after one of the recent changes... Unfortunate, but this is more of a bitflags issue than ours, and I'm pushing upstream to resolve this in bitflags/bitflags#147


Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
@zakorgy
Copy link
Contributor

zakorgy commented Apr 26, 2018

Could we temporary bump the max_rtvs value to 2048 and max_dsv to 128, until the proper solution is shipped? These are the minimum limits we need to run all the wrench tests without fail.

@kvark
Copy link
Member

kvark commented Apr 26, 2018

@zakorgy we certainly should, yeah

bors bot added a commit that referenced this issue Apr 27, 2018
1977: dx12: Increase descriptor heap limits temporarily r=kvark a=grovesNL

See #1945 (comment)

PR checklist:
- [X] `make` succeeds (on *nix)
- [ ] `make reftests` succeeds
- [X] tested examples with the following backends: dx12

As a side note I noticed `make reftests` is failing on dx12 for me (on master).

Co-authored-by: grovesNL <josh@joshgroves.com>
bors bot added a commit that referenced this issue May 17, 2018
2037: Format packing semantics, dx12 handling r=msiglreith a=kvark

Fixes all of the image related copy/blit CTS tests (>11K passes!). There are 0 failures in this category now and ~5 crashes due to #1945.

PR checklist:
- [ ] `make` succeeds (on *nix)
- [x] `make reftests` succeeds
- [ ] tested examples with the following backends:


Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
@kvark kvark removed the client: blocker blocker issue for a known client label May 18, 2018
@msiglreith
Copy link
Contributor

dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm.nearest_mipmap_linear fails due to running out of samplers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants