with the goal of getting 3d working in reactos

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

Zombiedeth
Posts: 119
Joined: Fri Jun 27, 2014 9:01 am

with the goal of getting 3d working in reactos

Post by Zombiedeth »

With directx on the agenda for the 0.5.0 i wonder if it may be good to have some quick simple 3d test programs included in ReactOS.
and with that in mind also OpenGL test programs would be good something like:

http://www2.cs.uidaho.edu/~jeffery/win32/wglgears.exe
http://www2.cs.uidaho.edu/~jeffery/win32/wglgears.c

My thinking is since people will need to test various 3d hardware during the process of getting 3d working having simple test tools could aide in this process.

and with that in mind maybe revise this list to include status of opengl and directx. or maybe a separate list specific to supported cards
with opengl and directx status listed.

https://www.reactos.org/wiki/Supported_ ... ideo_cards
ROCKNROLLKID
Posts: 307
Joined: Mon Oct 17, 2016 3:19 am
Contact:

Re: with the goal of getting 3d working in reactos

Post by ROCKNROLLKID »

Gaming is a huge reason why people use Windows, so I really hope they don't just stop at dx9. I really hope they can get dx10, 11, and 12 working, too, as well as OpenGL 4.5 and Vulkan working.
PurpleGurl
Posts: 1790
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: with the goal of getting 3d working in reactos

Post by PurpleGurl »

Agreed on the gaming. If ROS can truly be light and fast, the ability to use 3rd party drivers can be flawless, the memory manager can be fixed, and SMP/multicore can be made to work, hardware acceleration can used, it is possible that ROS might give gamers an edge.

I don't see why someone couldn't have a modified version of ROS which turns off most of the logging, performance counters, scheduling, non-essential networking, and be rather bare bones, and aim it at gamers. And there are ways to enhance that even more. For instance, take the radical idea of KJK::Hyperion to simplify the kernel and make it a tad more Linux-like while maintaining full driver and app compatibility with Windows. He wanted to eliminate CSRSS altogether as well as all usage of fake handles and the workarounds Microsoft used to force them to work. He claimed that was a huge performance bottleneck. Then there were the ideas I had proposed such as writing sections for specific hardware, using assembly if it came to that, and using unconventional coding techniques. So put all that together and there might be a light, mean OS for gamers.

And yes, adding benchmarking tools would help to show how ROS compares to Windows and where we can improve support.

As for dx10+, it seems you'd need to make things more like Vista/7 to support that.
Last edited by PurpleGurl on Wed Apr 12, 2017 5:17 pm, edited 1 time in total.
Zombiedeth
Posts: 119
Joined: Fri Jun 27, 2014 9:01 am

Re: with the goal of getting 3d working in reactos

Post by Zombiedeth »

Well even getting XP dx9 drivers fully working is going to be a huge undertaking. I don't know if it's even possible to support later drivers on a NT 5.x architecture. OpenGL 4.x is already supported on windows xp so once all the driver support is finished we will get that for free. If nothing else when WINE has more complete DX 10+ support WineD3D could be used as a wrapper.
Zombiedeth
Posts: 119
Joined: Fri Jun 27, 2014 9:01 am

Re: with the goal of getting 3d working in reactos

Post by Zombiedeth »

I mentioned wglgears specifically not so much as a bench mark tool but as a quick OpenGL test to see when the drivers are working. Also sometimes OpenGL is broken on windows drivers i have run into it in the past. I kinda have a suspicion maybe OpenGL could be working before direct3d.
PurpleGurl
Posts: 1790
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: with the goal of getting 3d working in reactos

Post by PurpleGurl »

Okay, one quick conduct comment is that they don't like you posting in the same thread after you've just posted there. They'd rather you edit your previous post or do all replies since you've been on last in a single post.

Well, either way on the benchmarking tools. They will show you if there is complete failure or how far we're lagging behind Windows in performance. That is one of the ways they do things around here -- scientifically. They have been able to increase the pace in recent years due to their extensive test suite. When you read about ROS tests and Wine tests, that's what they are discussing. As more things about Windows are determined to be testable, the more tests they add.

In this case, I think only one of the 2 standards is created, and a wrapper is used to emulate the other, using the functions of the first one.

And no, we are not getting anything for free. Sure, we cannot keep end users from violating Microsoft's EULA, but we do not encourage this nor allow discussion of such, nor any other unlawful activity. Besides, there is no guarantee you will be allowed to download DirectX 9c, and there is no guarantee it will even install. So we really need our own equivalents, and it will help the Wine project and any spin-offs of either project. As for testing Microsoft's stuff, that is probably seen as fair game.
MadWolf
Posts: 688
Joined: Sat Dec 31, 2005 4:19 am
Contact:

Re: with the goal of getting 3d working in reactos

Post by MadWolf »

PurpleGurl wrote:Agreed on the gaming. If ROS can truly be light and fast, the ability to use 3rd party drivers can be flawless, the memory manager can be fixed, and SMP/multicore can be made to work, hardware acceleration can used, it is possible that ROS might give gamers an edge.

I don't see why someone couldn't have a modified version of ROS which turns off most of the logging, performance counters, scheduling, non-essential networking, and be rather bare bones, and aim it at gamers. And there are ways to enhance that even more. For instance, take the radical idea of KJK::Hyperion to simplify the kernel and make it a tad more Linux-like while maintaining full driver and app compatibility with Windows. He wanted to eliminate CSRSS altogether as well as all usage of fake handles and the workarounds Microsoft used to force them to work. He claimed that was a huge performance bottleneck. Then there were the ideas I had proposed such as writing sections for specific hardware, using assembly if it came to that, and using unconventional coding techniques. So put all that together and there might be a light, mean OS for gamers.

And yes, adding benchmarking tools would help to show how ROS compares to Windows and where we can improve support.

As for dx10+, it seems you'd need to make things more like Vista/7 to support that.
do you have links for that ??
PurpleGurl wrote:Okay, one quick conduct comment is that they don't like you posting in the same thread after you've just posted there. They'd rather you edit your previous post or do all replies since you've been on last in a single post.

Well, either way on the benchmarking tools. They will show you if there is complete failure or how far we're lagging behind Windows in performance. That is one of the ways they do things around here -- scientifically. They have been able to increase the pace in recent years due to their extensive test suite. When you read about ROS tests and Wine tests, that's what they are discussing. As more things about Windows are determined to be testable, the more tests they add.

In this case, I think only one of the 2 standards is created, and a wrapper is used to emulate the other, using the functions of the first one.

And no, we are not getting anything for free. Sure, we cannot keep end users from violating Microsoft's EULA, but we do not encourage this nor allow discussion of such, nor any other unlawful activity. Besides, there is no guarantee you will be allowed to download DirectX 9c, and there is no guarantee it will even install. So we really need our own equivalents, and it will help the Wine project and any spin-offs of either project. As for testing Microsoft's stuff, that is probably seen as fair game.
Steam origin when you launch a game for the first time they run DirectX 9c run time and other run time installers
PurpleGurl
Posts: 1790
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: with the goal of getting 3d working in reactos

Post by PurpleGurl »

I have the links but didn't intend to hijack the thread. Okay, here are the 2 posts related to the proposed kernel changes:

The 2nd large paragraph of this one:
https://www.reactos.org/pipermail/ros-k ... 00112.html

That gives the context for this one (all but last paragraph and preceding quote are relevant here):
https://www.reactos.org/pipermail/ros-k ... 00168.html

I'd like to take all the user proposed ideas and radical modification proposals (the ones that aren't too far-fetched or apparently will totally break compatibility) and put them in a single wiki file (much like what was done in Shell Documentation). However, it appears that I don't have new article creation rights yet. They had to lock down the wiki a bit due to spam/abuse.
---

Back on topic, yes, there are plenty of game installers and installers for game consoles/downloaders (like Origin, etc.) which do install DirectX and other Microsoft plugins and libraries. I am uncertain how well those will work with ROS. And who would the legal liability fall back onto? The game developers? I mean, Microsoft has no right to tell me what 3rd party games I can run on a non-Windows system. However, what if doing so pulls in Microsoft code?
middings
Posts: 1073
Joined: Tue May 07, 2013 9:18 pm
Location: California, USA

Re: with the goal of getting 3d working in reactos

Post by middings »

MadWolf wrote:
PurpleGurl wrote:...(T)ake the radical idea of KJK::Hyperion to simplify the kernel and make it a tad more Linux-like while maintaining full driver and app compatibility with Windows. ... So put all that together and there might be a light, mean OS for gamers.
do you have links for that ??
I searched the ReactOS.org web site and that discussion appears to be lost to history.

Much is possible. Certainly when ReactOS is stable and feature-complete, ambitious modders will explore its possibilities. Today the devs sensibly pursue stability and feature-completeness instead of risky, project delaying moon-shot goals.
PurpleGurl
Posts: 1790
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: with the goal of getting 3d working in reactos

Post by PurpleGurl »

middings wrote:I searched the ReactOS.org web site and that discussion appears to be lost to history.

Much is possible. Certainly when ReactOS is stable and feature-complete, ambitious modders will explore its possibilities. Today the devs sensibly pursue stability and feature-completeness instead of risky, project delaying moon-shot goals.
I gave the links in my previous post that probably posted while you were still composing. That happens sometime. And you are right, the devs should stay on course as they determine and try to make it as stable and usable as possible.

As for the kernel overhaul involving moving consoles to drivers, eliminating dependency on csrss, and making all objects valid with a truly object oriented environment, that is the job of ambitions modders like you said. In addition, they should try to see if they can apply it to Windows XP/2003. If they can prove that it works there and is an improvement, then it might be something to consider here.
Zombiedeth
Posts: 119
Joined: Fri Jun 27, 2014 9:01 am

Re: with the goal of getting 3d working in reactos

Post by Zombiedeth »

PurpleGurl wrote:Okay, one quick conduct comment is that they don't like you posting in the same thread after you've just posted there. They'd rather you edit your previous post or do all replies since you've been on last in a single post.
It wasn't my intent one post was directed to you the former to the previous poster i suppose i could have noted who i was replying to.
PurpleGurl wrote: And no, we are not getting anything for free. Sure, we cannot keep end users from violating Microsoft's EULA, but we do not encourage this nor allow discussion of such, nor any other unlawful activity. Besides, there is no guarantee you will be allowed to download DirectX 9c, and there is no guarantee it will even install. So we really need our own equivalents, and it will help the Wine project and any spin-offs of either project. As for testing Microsoft's stuff, that is probably seen as fair game.
I think your misinterpreting what i was referring to by "we will get that for free" i was talking about OpenGL it's not a property of microsoft and short of depending on ddraw.dll it's self contained as far as i know. It's also part of the driver. And as another poster noted DirectX is bundled with games and often bypass the EULA doing a silent install so if anything it's on the game publisher and the user is exempted by this act.
PurpleGurl
Posts: 1790
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: with the goal of getting 3d working in reactos

Post by PurpleGurl »

Yes, I might have misunderstood. I thought you meant using DirectX from Microsoft. Actually, I think we have actual code for OpenGL but have a wrapper to it to support D3D, unless I have it backwards.

Yes, it is a funny rule too. They don't care how many people you are replying to, and you can quote and reply in a single post. That took some time for me to get used to. I thought it made more sense and was easier to follow if you replied to one person per post. And I'm not fully in agreement with the "necromancy" rule either, but their house, their rules. That one is more about not posting in threads that are superseded by newer threads, restarting old flames, or discussing things that have already been covered (gets confusing if someone finds an old thread and assumes the matter is still active when the matter was long resolved and obsolete).
Zombiedeth
Posts: 119
Joined: Fri Jun 27, 2014 9:01 am

Re: with the goal of getting 3d working in reactos

Post by Zombiedeth »

Yeah ReactOS currently uses WINE's WineD3D OpenGL to DirectX wrapper. Translating DirectX functions to OpenGL.
PurpleGurl
Posts: 1790
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: with the goal of getting 3d working in reactos

Post by PurpleGurl »

Zombiedeth wrote:Yeah ReactOS currently uses WINE's WineD3D OpenGL to DirectX wrapper. Translating DirectX functions to OpenGL.
Wrappers already exist the other way, and that's an easy newbie mistake to make, to assume one of those other wrappers could help. That obviously would never work if wrappers call wrappers in both directions, recursively... All I can imagine would happen is that more and more CPU cycles and memory would be used until it locks up and then crashes. (And no, I am not saying anyone has ever tried or proposed such.)

I've kinda wondered what performance could be obtained by flattening the wrapper and copying the code over, inline. But that would not be the end of it... I mean, that in itself would only save a tiny amount by reducing stack usage. I am not familiar with the APIs or command set of either, but it seems like they are not direct correlations of one another, so other code would have to be used to convert between the formats to make the parameters useful. So then it seems if the route to do so could be more direct where whatever parameters were accepted in the first place, then more performance can be gained. Then as a compromise to reduce some of the bloat this might add, then what is common could then get its own library, and both our DirectX and OpenGL could be wrappers to it. Just have more unique code and then call the common parts that truly are shared. So just change the granularity and where it branches off to the common code.

I could share my experiences with QuickBasic and assembler to illustrate what I mean, but I don't want to hijack the topic. A lot of times, when you use APIs or commands to form other ones, some of the granularity of the code gets lost. I mean, the functions called don't do what you want and you have to undo some of what they do when you write a wrapper. So it is more efficient to rewrite the old code and save to a new function, and reworking it to do what is desired from the start. And if a significant amount is duplicated after that, then you can combine what is common to both and call from both (unless that can cause race conditions or function reentry problems).

Of course, wrapper flattening is not always a good thing, like in the case where you truly don't want to touch broken or troublesome code -- like using LwIP in ROS. ROS is supposed to be thread safe, but LwIP is not. So then you have to create a semaphore system and/or a caching system in your wrapper to serialize the requests. LwIP would need a rewrite to be thread safe. LwIP might work well for financial transaction or point of sale software where there is only one destination at a time if not just one period. But last year's GSOC effort went into writing a wrapper to make up for it not being thread safe. Now back to DirectX/OpenGL, I don't guess more than one would be active at a time or that both would be in use at once. But I'd need clarification to know for sure.
MadWolf
Posts: 688
Joined: Sat Dec 31, 2005 4:19 am
Contact:

Re: with the goal of getting 3d working in reactos

Post by MadWolf »

PurpleGurl wrote:I have the links but didn't intend to hijack the thread. Okay, here are the 2 posts related to the proposed kernel changes:

The 2nd large paragraph of this one:
https://www.reactos.org/pipermail/ros-k ... 00112.html

That gives the context for this one (all but last paragraph and preceding quote are relevant here):
https://www.reactos.org/pipermail/ros-k ... 00168.html

I'd like to take all the user proposed ideas and radical modification proposals (the ones that aren't too far-fetched or apparently will totally break compatibility) and put them in a single wiki file (much like what was done in Shell Documentation). However, it appears that I don't have new article creation rights yet. They had to lock down the wiki a bit due to spam/abuse.
---

Back on topic, yes, there are plenty of game installers and installers for game consoles/downloaders (like Origin, etc.) which do install DirectX and other Microsoft plugins and libraries. I am uncertain how well those will work with ROS. And who would the legal liability fall back onto? The game developers? I mean, Microsoft has no right to tell me what 3rd party games I can run on a non-Windows system. However, what if doing so pulls in Microsoft code?
thanks for the links imho if you are going to quote something it is better to link to the source
a bit off topic ea origin installer is checking what version of windows it is running on and if it is not running on win 7 and above the installer refuses to run
edit
Zombiedeth wrote:Yeah ReactOS currently uses WINE's WineD3D OpenGL to DirectX wrapper. Translating DirectX functions to OpenGL.
do you mean this
Yeah ReactOS currently uses WINE's WineD3D DirectX to OpenGL wrapper. Translating DirectX functions to OpenGL ??
Post Reply

Who is online

Users browsing this forum: No registered users and 50 guests