szeged / webrender

A GPU-based renderer for the web
https://doc.servo.org/webrender/
Mozilla Public License 2.0
45 stars 7 forks source link

Share descritpor sets #282

Closed zakorgy closed 5 years ago

zakorgy commented 5 years ago

This depends on #280

The general idea behind this PR is described in https://github.com/szeged/webrender/issues/236, and here is the list of changes I made:

zakorgy commented 5 years ago

Thanks for the review @kvark, it's good to have you back. I have answered the questions, which I think needed explanation. I can agree with the remaining ones, or we will discuss them on the next call.

zakorgy commented 5 years ago

The changes related to push constants (beec365a64dec910616c0490969a694413b759d2) are not working on Windows. This could be an Intel driver issue and related to https://software.intel.com/en-us/forums/graphics-driver-bug-reporting/topic/777459 .

kvark commented 5 years ago

@acohade Is Intel Developer Zone the right place to report driver issues to you? Seeing this bug not having a single reply in a year makes me worried.

FWIW, I ran Vulkan CTS "push_constant" section on Iris 550 / Windows 10 (driver version 23.20.16.4973) and got 17/17 passed tests. That is to say, I'm not seeing the issue reported in the developer zone either. Perhaps, it got accidentally fixed in the meantime?

zakorgy commented 5 years ago

Added a push_constants feature as a fast workaround for the Intel issue in the last commit. I will merge this and the remaining work (better state tracking for the descriptors, immutable samplers, moving pipeline layout in the code) will go in a different PR