-
Notifications
You must be signed in to change notification settings - Fork 142
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
Implement raspberry pi tiled texture #22
Comments
Hi, Marek: For creating textures, render targets and depth/stencil buffer, app calls the CreateTexture2D API and then the runtime calls 2 DDIs:
0: kd> kn Child-SP RetAddr Call Site00 0014dae0 7568f858 rosumd!RosUmdDeviceDdi::DdiCalcPrivateResourceSize 1: kd> kn Child-SP RetAddr Call Site00 0014e5d0 7569beb4 rosumd!RosUmdDeviceDdi::DdiCreateResource |
From: Indy Zhu Hi, Marek: We are working on the symbols issue, it is important for development, I will notify you when there is a conclusion. You have a good plan in general, but I want to start with a smaller scope at the beginning. Can you please take a look at RosUmdResource::CalculateMemoryLayout() ? At the start of the tiling support work, I would suggest we start with texture with these characteristics:
This avoids the complexity of supporting :
I think the 1st place to utilize the tiling support is for initializing the texture with app supplied initial data. I suggest you use the Cubetests and its R8G8B8A8 texture for starting the tiling work, so that we can easily compare rendering result of linear and tiled texture. One of our goals for the VC4 driver is to render D2D content (for Windows shell/UI), have you used D2D ? And then as you planned, please move onto ResourceCopy(). Jordan is building the Raspberry into a full driver, meaning it will drive the display/monitor. Please let me know if you have any question. I hope you can have a bigger picture view of the project besides the technical details.
From: Marek Kedzierski [mailto:[email protected]] I forgotten to add, that this is a general sketch, I've started working on the code so I expect to have more questions soon:-) Marek Od: "Marek Kedzierski" [email protected] I swear some of the missing symbols (like those from dxgkrnel) were available on sever about two months ago. Version command: Windows 10 Kernel Version 10586 MP (4 procs) Free ARM (NT) Thumb-2 Thanks for stack frames , yestarday I've already figured out the flow (at least I think:-)) through intensive debugging. The general sketch for tiles support looks like this:
Please correct the places where I'm wrong - then I'll put the sketch on github as commentary. Cheers, Marek |
Indy, after filling memory with right tiled format, how to inform HW that it has to deal with RosHwLayout::Tiled? |
You will need to specify texture data type at texture config parameter 0/1 (TYPE/TYPE4), see hardware spec page 42/43. Currently it's set to 16 (RGBA32R) which is linear format. Once you can swizzle texture, then non-Raster format, such as 0 (RGBA8888) or 1 (RGBX8888) can be used for tiled texture. |
Thanks! |
All, I did tiled textures support (m_usage of D3D10_DDI_USAGE_DEFAULT, m_bindFlags has only D3D10_DDI_BIND_SHADER_RESOURCE bit/RGBA8888) for T type texture as Indy suggested. I will create pool request soon. I used CubeTests - I did tests on special prepared images of size 64x64 with markers, because they really helped me to figure out what is the real layout of subtiles and tiles). Right now I'm making sure everything works - I'm moving to bigger textures. Cheers, Marek |
Thanks Marek. We are looking forward to your pull request. |
The text was updated successfully, but these errors were encountered: