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
[win32] Update rendering system to DirectX11. #6987
Conversation
I also work chaotically so once finished I tend to make a new branch and cherry pick related changes and squish them to make it cleaner. It's quite a lot of work though on something big like this. Just wanna say awesome work! |
You could for example git reset all your commits (so you have them as pending changes) and then pick some added files with a nice commit message and then commit maybe removed files together and at the end when only modified files are left - git commit -p relevant chunks of them (if possible). Just an idea on how to do it. Looks like you should try to reduce the number of commits before it can be reviewed properly. |
Here is branch rewritten which is easier to review master...afedchin:dx11_new, but it can break bisect. @Memphiz @Paxxi What do you think? |
Looks a lot better, I'm not a user of bisect so personally I don't care but some might disagree about it I guess. |
I've reviewed this and found what this broke existing screensavers/visualizations on other platforms. I've also found a few bugs. So I suggest to move to the new branch (or update this) because it contains all new fixes/improvements/cosmetics. This branch has become too difficult for support and fix. Yes I know what dx11_new break bisect, but only for windows builds. |
nice work! regarding
could you ask at ffmpeg whether they prefer a configure switch or something else? |
I've sent the question. But I think this patch will not be accepted because it is not full. It is enough to work decoders but not enough to compile full ffmpeg. |
@FernetMenta I've reworked dxva related code as Hendrik suggested. No more need changes to ffmpeg. |
great! |
3702e4f
to
b22fc9b
Compare
It's time we get started on reviewing this properly so let's start with some ground rules
My initial thoughtsI've spent the day going through all kodi code, haven't touched the visualizations yet and I find it very solid. The design seems sound and well encapsulated, it touches very little or no shared code and the separations are clean. I will spend some more time over the week going back over it as it's fairly big. @FernetMenta I hope you have some time and or energy to review as well as you probably know the architecture of this code the best isues so farI though initially I'd put these as line comments but my browser doesn't agree with that so I'll stick it here instead DXVA.cpp#1077 According to msdn no extensions are defined for DX11 so we probably shouldn't set this to a value for previous dx versions https://msdn.microsoft.com/en-us/library/windows/desktop/hh447645(v=vs.85).aspx WinRender.cpp#1033 leaks memory if the error condition is true. There's a few missing virtual destructors that may leads to memory leaks, mainly in RenderCapture.cpp |
@Paxxi I've added most of your comments to the commits. |
As for WinRender.cpp#1033. I agree with you. But I suggest to fix it in separate PR before Isengard release. |
@FernetMenta @fritsch i would appreciate if you could comment if the architectural changes are within reason (if there are at all). This would give @afedchin time to do any alterations by the time we can merge this for 16.0 |
Regarding player and videorenderer there are no significant architectural changes, apart from DX9->DX11 transition of course. nice solution for keeping compatibility with ffmpeg. |
927cb04
to
3632b11
Compare
9acd682
to
f5dbdbb
Compare
…roperty of SCR_PROPS/VIS_PROPS. (DirectX11)
Also fixed add-on directories to not hard-coded to special://xbmc/addons/
rebased |
You have my ok, merge when possible to avoid having to rebase this more than necessary |
Also fixed presets handling to allow installing add-on out of special://xbmc/addons.
Signed-off-by: Anton Fedchin <afedchin@ruswizards.com>
…tures. Now CYUV2RGBShader uses YUVbuffer's textures instead of copy them.
just to be sure jenkins build this please again |
[win32] Update rendering system to DirectX11.
This is work to porting Kodi rendering system to DirectX 11. Here is testing thread on the forum http://forum.kodi.tv/showthread.php?tid=218274
New features (compared to dx9 version):
This also require changes in ffmpeg use D3D11 Video API to decoding, see afedchin/FFmpeg@d335d996a.To properly work video API (dxva rendering and decoding) on Windows Vista/7 this requires:
need to find a way to trigger user to get that installed.
PS. The first few commits not fully reflect their essence, everything was done chaotically without a clear plan of action. Some things are reworked multiple times, as an example GUI sahders. Currently I don't see how can I change (split or squash) commits to make them more clear.PS. This breaks bisect windows builds.