-
Notifications
You must be signed in to change notification settings - Fork 543
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Devices discussion #740
Comments
Btw. The architecture being designed to support vulcan / spir is very smart move I think. I am already playing around with this and can help on this aspect. |
@joeblew99 You are playing around Vulkan? How did you get the specs? We'd appreciate any help on this front. |
I work with people at arm doing testing sometimes. I sometimes get invited to dogfood early drivers on mobile. |
Its an informal thing. I get the impression they and silicon manufacturers are very keen to get it moving |
There is a thousand things yet to do in gfx land, but getting more devices (which should really be named backends, btw) is our strategic goal. I believe D3D bindings are mature enough to experiment with |
Definitely will help if I can. This project is really great. But the drivers I get are open very very raw still so allot of false positives. I am hoping I get more drops and that their drivers get more substatial. I was mostly testing things on android btw |
@joeblew99 sounds great! If you are serious about that, I can just add you to the members so that you can work on |
On windows Microsoft have not dropped D3D ? I read that they might be dropping D3D and going opengl. On browsers your going via emscripten of generating webgl calls as js internally. This is what the golang developers are doing - generating directly. |
I am very serious about vulcan. It is really the way it should be done. |
Microsoft is by far not abandoning D3D. They are pushing DX12 left and right, and it's a big improvement! Even though, still unportable. You've been invited to the group. Good luck! |
Been reading through Apple's Metal API recently and thought I might write down my understanding of how they've designed it and how gfx can adapt. As far as I know Metal is pretty similar to Mantle, which in turn is similar to Vulkan, so this should be pretty relevant, despite being designed for the PowerVR GPUs. TexturesIn Metal, mutability is sparse. Textures ( ResourcesAll resources are created with an accompanying type descriptor ( DeviceThere is a notion of a
ShadersShaders in Metal seems very streamlined. Command BuffersPushing commands to the GPU is done by creating a command queue ( Command buffers is where all the magic happens. They can create different types of encoders which correspond to different parts of the pipeline. Only a single encoder can be active for a command buffer. You can also encode several commands from different encoders in a single command buffer. To execute all the commands the buffer is commited to the queue.
The documentation says the following on multithreading:
Quite a long comment but I hope it was somewhat insightful. If anyone actually knows Metal, please point out anything that's incorrect! |
@fkaa thanks fa ton for writing this up! Textures - we have the same policy. Buffers and Textures in gfx-rs are immutable when it comes to the descriptors, so no changes are needed. Color attachment descriptors - not sure how it's going to map just yet. Sounds like it's the same concept as the texture views in GL/D3D, which we need to provide (TODO!). Device - seems to be what our Shaders - the *Command Buffers - |
Reading up more on Metal makes me think it's a better candidate for us to match. If we go lower, we wouldn't be able to emulate Metal then. Also, it's interface is much simpler, while still providing as much power as Mantle and co. |
@kvark Agree, now that Metal is announced for OS X I think it makes a lot of sense to target it as an "advanced" API on all Mac platforms. |
Closing as outdated. We got ES2 and Metal, in a way now. Our API most closely resembles DX12. |
740: First Phase of Tracing Transition r=kvark a=cwfitzgerald ## Connections First step in the implementation of gfx-rs#491. gfx-rs/wgpu-rs#395 ## Description This adds the tracing crate, implements a tracing "layer" for chrome tracing, and instruments every entrypoint into wgpu. Tracing is added as a main dependency. A feature is added called `subscriber` which guards the tracing and default logger implementation, as that adds 3 dependencies. The main macro is there to make creating a span a simple one line process. This macro will come in useful in the next couple stages. Use of this macro is used unqualified with it imported into scope as that style allows IntelliJ ides to actually find the macro. I also removed a really annoying warning that was driving me crazy. This PR does not make sure the logging output from tracing is up to snuff, that will be done when logging output and conversion is the priority. Both commits should compile individually, so shouldn't need to be squashed. ## Testing This PR was tested with the wgpu-rs PR on various examples, as well as my personal project. Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
Is this ready for testing on android and ios.
Is the roadmap plan to support webgl via emscripten ?
The text was updated successfully, but these errors were encountered: