- #Opengl vs directx 12 drivers#
- #Opengl vs directx 12 update#
- #Opengl vs directx 12 full#
- #Opengl vs directx 12 pro#
- #Opengl vs directx 12 code#
I wouldn’t go into deeper analysis before getting information on GPU frequencies during the tests execution and a distinguished CPU and GPU execution time. Is it a time-span between the beginning and the end of the frame execution, or between two consecutive frames? Is it a CPU or GPU time? Furthermore, there is no hardware (monitor) that can refresh its screen 9000 times per second. Second, instead of FPS, using frame execution time is more informative information. If GPU utilization is low, the test is not very relevant since there is a bottleneck or underutilization. Nowadays, the frequency is continuously changed even through the PS. Previously, there were power states (PS) that determined the frequencies and power consumption.
#Opengl vs directx 12 drivers#
Would you be so kind to add GPU working frequency instead of GPU load (or as the addition to GPU load information)? As we all know, the drivers are very aggressive in reducing working frequencies as the workload decreases. Thank you very much for some interesting results, but I have to admit they are not very informative. This is particularly visible with 4000 quads: D3D12 is twice faster: 180FPS for D3D12 against 97 FPS for OpenGL. But this GeeXLab test shows that we can draw more objects with Direct3D 12 than with OpenGL.
GeeXLab is maybe not the best tool for this kind of test (a loop with 4000 iterations) because of the overhead of the virtual machine (Lua and host API functions calls). To change the number of quads, edit the xml file and look for the lines: In this test, a quad is made up of 4 vertices and 2 triangles.
#Opengl vs directx 12 code#
The test is available in the host_api/Direct3D12_vs_OpenGL/ folder of the code sample pack (files: 08-drawstress-d3d12.xml and 08-drawstress-opengl.xml). I only tested on my dev system, with a GeForce GTX 960 + R361.43. No hardware instancing is used, each quad is rendered with its own draw call. I also did a simple draw stress test: a quad is rendered 100, 4 times. The results are similar with latest drivers (R361.43 / Crimson 15.12). What’s more for a mesh of 2-million polygons, The Intel GPU is faster than a GTX 970 or a R9 290X in D3D12! It looks like for many polygons, there is a CPU-bottleneck somewhere in the D3D12 rendering pipeline that does not reflect the real power of GPUs. The case of Intel GPU is interesting because it has more or less the same performances in D3D12 and GL. AMD Radeon cards are particularly fast! Around 80K polygons, Direct3D offers the same kind of performance than OpenGL. Direct3D 12 results TrianglesĪccording to this test, Direct3D 12 is faster than OpenGL when the number of triangles is low. The FPS in the following tables are the average framerates.
#Opengl vs directx 12 pro#
CPU: Intel Core i5 6600K Motherboard: ASUS Z170 Pro GamingĬlock speeds: stock values for the CPU, memory and graphics cards.
#Opengl vs directx 12 update#
I will update this post as soon as I find bugs or bring some optimizations in GeeXLab that can change the results.
The results of this test should be taken with caution because it’s my first implementation of a Direct3D 12 plugin for GeeXLab and graphics drivers are also constantly updated. You can change the number of polygons by editing the source code of both files: lines 76-84 (09-lighting-mesh-d3d12.xml) and 47-54 (09-lighting-mesh-gl32.xml). The test is available in the host_api/Direct3D12_vs_OpenGL/ folder of the code sample pack (files: 09-lighting-mesh-d3d12.xml and 09-lighting-mesh-gl32.xml). You can download both GeeXLab (version 0.9.3.0+ is recommended) and the test from THIS PAGE. This test uses one command list, one PSO, one HLSL program, one mesh and one texture. Since GeeXLab is now available with an OpenGL and a Direct3D 12 renderers, here is a quick benchmark that shows the difference of performance between Direct3D 12 and OpenGL 3.2 in a very simple scene: a phong-textured mesh (a torus to be original) is rendered with various polygon density.
#Opengl vs directx 12 full#
It’s not a full support but most of the basic things are available: command lists (CL), pipeline state objects (PSO), constant buffers (CB) and HLSL shaders.Īn introduction to Direct3D programming with GeeXLab is available HERE. GeeXLab, the successor of GLSL Hacker, comes with the support of Direct3D 12.