View Full Version : New swShader Demo
You're the first to know! :D
Grab it here: swShader Project Page (http://sourceforge.net/projects/sw-shader).
It demonstrates the capabilities of the swShader software renderer as a DirectX 9 compatible DLL. The actual application is an unmodified example from the DirectX 9.0b SDK. So all render calls are handled by this DLL, completely in software. For more information about swShader you can also visit the Main Homepage (http://sw-shader.sourceforge.net).
If you have any questions about it, feel free to ask!
Dia Kharrat
09-29-2004, 09:24 PM
Nice work Nick! You continue to impress us. I've posted this news-worthy announcement on the main page. I'm downloading your demo right now and will try it out.
cdgray
09-29-2004, 09:33 PM
cool..very cool. I've never seen this done before. Are you the first person?
Microsoft should buy this thing and use for their reference rasterizer. I do understand your reasons for not releasing the source code :D
You could easily beat the hardware by releasing a software implementation of Shader Model 4.0...way ahead of the hardware :sneaky: You made me comfortable that now I can do some researching without buying the actual hardware :)
thanks for the post.
So what directx 9 features are you missing so far?
Are you planning on releasing an OpenGL software implementation (replacing the opengl.dll)? Given your modular design (i've looked at your code), it shouldn't be difficult to do it. But if you're done from implementing the directx features, you could start with opengl! I think it was a smart choice to start with DirectX because it is more oriented towards the hardware architecture than opengl. good job!
Thanks guys!
I've never seen this done before. Are you the first person?
No, Oliver Weichhold was faster. He was able to show a software rendered Unreal (using the DirectX path) about two years ago. It was DirectX 8 compatible, and he called it SoftD3D. Never heard much about him after his article in ShaderX2. His performance wasn't bad, but it was all implemented in C++. Efficient shaders, and supporting millions of state combinations requires dynamic compilation technology like SoftWire.
Microsoft should buy this thing and use for their reference rasterizer. I do understand your reasons for not releasing the source code :D
The reference rasterizer will never be intended to be fast. :happy: My software is about 100 times faster, but slightly less accurate, and a bit buggy. The reference rasterizer is intended to be straightforward and rock-stable.
You could easily beat the hardware by releasing a software implementation of Shader Model 4.0...way ahead of the hardware :sneaky: You made me comfortable that now I can do some researching without buying the actual hardware :)
That's one of my goals with swShader, providing a library for experimentation with reasonable performance. Of course nothing beats the real hardware, but if I had to choose between 0.15 FPS from the reference rasterizer and 15 FPS from swShader...
So what directx 9 features are you missing so far?
The fixed-function pipeline is nearly finished, but the programmable pipeline has no interface yet. The functionality is about 90% finished, as you can see in my other demos, but it's not exposed through the DirectX DLL yet. Other than that there's still a big percentage of infrequently used functions that prevents some specialized applications from running. My best approach so far is to keep picking new sample applications and making them work one by one, I hope to start with games soon...
But first I will redesign my shader pipelines. They currently process one vertex and one pixel at a time. MMX and SSE will be used a lot more efficiently when processing them by four. The new rasterizer I presented in the Code Spotlight was the first step towards that. So the next few months I won't be adding new DirectX features, but I'm hoping this new implementation of the core will make it 50-100% faster.
Are you planning on releasing an OpenGL software implementation (replacing the opengl.dll)?
Yes, but not before the DirectX interface is completely finished. :unsure: For OpenGL there's already the Mesa3D project, and I don't want to be worrying about two APIs at the same time. It's still a hobby project...
Could some people post the FPS they get, and their processor specifications (model, cache, clock speed and FSB speed)? I'm interested to see which are good for this SIMD intensive work. Thanks!
16.28 FPS - Pentium M, 512 kB L2, 1.4 GHz, 533 Mhz FSB
bladder
10-01-2004, 06:19 AM
p4 1.7ghz, 400mhz bus, IIRC the model is a HT capable but not HT enabled Xeon processor. Dunno about the L2 cache size.
woops :blush: heh
fps = 10
thanks Nick
JSoftware
10-01-2004, 06:53 AM
fps: 15.94 Amd athlon xp "Barton" 2500+, 512kb l2, 1833 MHz,333mhz fsb
Dia Kharrat
10-01-2004, 07:14 AM
tried it on my work machine:
Dual Processsor: PIII 1.4GHz (two processors, not HT)
RAM: 1GB
Bus: 133MHz
L2 Cache: 512KB
Running Window 2003 Server
FPS: ~12.5
Wow, I'm surprised I have the highest FPS (for now). :blink: Apparently Pentium M's are indeed very powerful even at low clock frequency. I'm dissapointed actually. I expected everyone to have an efficient 3 GHz processor that can render this at 30 FPS. :wink:
It's the shadow rendering that kills the performance. Without it, I get 60 FPS...
anubis
10-01-2004, 07:56 AM
i tried it on my notebook before i installed linux again for university so i can't provide any numbers but i was surprised to see the pentium-m perform so well
davepermen
10-01-2004, 07:58 AM
10fps. 2.7ghz celeron.
i'll test out other systems, but for now, i'm on holidays, doing party and road trips, so i have no time.
I really wonder what I spent all that money on…? :sad:
I got a 3.2 GHz processor and all I get are 17.6 fps. Maybe it’s time to reinstall... :unsure:
Edit: sorry almost forgot, it crashes when i resize the window. thought you might want to know.
JSoftware
10-01-2004, 09:45 AM
yeah also crashes here
Nick: it's pretty deceptive that you mention: "Using HAL" :)
It makes me think this is hardware-accelerated ;)
Edit: sorry almost forgot, it crashes when i resize the window. thought you might want to know.
It's a known bug. I decided to release the demo as soon as possible. :blush: Another known bug is that there's sometimes a very thin line from the plane towards the shadow. It's related to rasterization precision, although I can't seem to reproduce it using synthetic tests.
I don't care much about these things. After all it's just the first DirectX 9 demo, and I'm still working on the new and improved pipelines...
Anyway, if you want higher resolution, simply recompile the SDK sample! :D
Nick: it's pretty deceptive that you mention: "Using HAL" :)
It makes me think this is hardware-accelerated ;)
Many applications won't run unless I completely let my software pretend it's a modern graphics card. :cool:
If you don't believe me, just replace your graphics card with one of those really old 2D PCI cards. :tongue:
NomadRock
10-01-2004, 12:05 PM
16.8 fps
AMD Athlon 3000+
1GB 400Mhz ram
When in full screen at 1024x768 the frame rate drops to 2.6 fps
When in full screen at 1024x768 the frame rate drops to 2.6 fps
Now try the reference rasterizer. :wink:
I know I still have a long way to go... But the first experiments with the new raterizer are amazing. While I'm currently processing stencil operations one pixel at a time, the new rasterizer will allow me to do eight in parallel. It also allows efficient overdraw reduction. I'm not sure what the effective speedup will be, but I'm still aiming at 30 FPS at 640x480.
If you don't believe me, just replace your graphics card with one of those really old 2D PCI cards
The graphic card should be completely irrelevant since it is a software renderer, or am I missing something?
I'm still aiming at 30 FPS at 640x480
We all trust in your skills and therefore I am confident you’ll be there soon. :yes:
cdgray
10-01-2004, 05:52 PM
I just ran it and here are the results:
P4 2.6Ghz, 1GB 1066MHz RDRAM, 512KB L2 cache, 533Mhz bus speed
FPS: 18.4
I was tempted to mention my video card specs, but then realized: oh shit, this is software rendering, not hardware :D I was familiar with the directx demo and because I didn't notice a visual difference I forgot that this is emulation!
Thanks for all the performance and specification numbers! It has given me hope that I'll reach my goals. For this particular demo I'll have to focus on stencil optimizations...
vBulletin, Copyright ©2000-2009, Jelsoft Enterprises Ltd.