Performance Profiling of OpenGL Shaders [closed] - opengl

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
Is there a tool available that can do performance profiling of OpenGL shaders?

nVidia PerfWorks can. They also have FX Composer, which includes some profiling with a graphical front-end (but FX Composer is now basically discontinued--you can still download it, but it's no longer being updated).
AMD/ATI's GPUPerfAPI and GPUPerfStudio provide similar capabilities. They also have GPU ShaderAnalyzer to do static analysis, but I believe it's restricted to DirectX shaders, not OpenGL.

If you run on Nvidia hardware there is also Nsight for Visual Studio resp. the standalone Nsight Graphics.
AMD's GPUPerfStudio even works without AMD hardware but you only get the API tracer (and the static shader analyzer if you use DirectX). The frame debugger and profiler tools depend on their hardware of course.
For Intel there is GPA. It doesn't support shader micro profiling though.
There is also the static (i.e. does not require hardware) Intel Shader Analyzer but not sure if it provides more than just the assembly: http://shader-playground.timjones.io/749ef0d908128a0ae8a824b93381bbf1
RenderDoc does not really have profiling capabilities at this point due to lack of time.
But some Intel perf counters for OpenGL have been added recently.

Related

DirectX software renderer like Mesa3D for OpenGL [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 days ago.
Improve this question
I'm well known of Mesa3D which is an open source software renderer for OpenGL and Vulkan and enables latest OpenGL and GLSL support on systems with old GPUs or even without a GPU. But is there any similar open source project for DirectX which could enable latest DirectX and HLSL support on old systems with software rendering?
I tried searching on Google and found a program named SwiftShader which enables newer DirectX and shading model support on old hardware but I couldn't confirm that it's open source.

Software-only openGL32.dll? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I have multiple machines that do not have openGL capable graphics controllers (or at least not for the OS I am using), and I am trying to run various softwares which require openGL32.dll to be present and working. I only need openGL version 1.4 compatibility.
My question: Is there some sort of software-only emulation for openGL that I can use to run these? I have heard of MESA, but all I need is the dll, and MESA seems to require that I build everything manually.
I am running Windows 10 x86_64
I'm pretty surprised that a machine running Windows 10 does not have a GPU capable of supporting OpenGL-1.4 – most likely you simply don't have the proper drivers installed and that's all your troubles. OpenGL dates back almost 15 years; that was before shaders where are thing.
The default Windows installation does not ship with fully featured OpenGL drivers, because Microsoft in all their wisdom decided, that they'd strip perfectly working OpenGL drivers from the drivers installed through Windows automatic driver installation.
To get full and proper OpenGL support you absolutely must download the drivers directly from your GPU vendors website and install those. Open up the "Hardware Manager", look for "Graphics adapter", there you find the name of it. Type the name plus "driver Windows" into the little box of Google and it will carry you to the right place.
Mesa3D seems to publish its own versions of it: https://fdossena.com/?p=mesa/index.frag

GLSL Standalone Shader Compiler [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 2 years ago.
Improve this question
I've been looking for standalone shader compiler in Linux - for example, to compile source code from shadertoy.com. I found some - like shadertoy-master or shadertoy-view-master repositories on github, but they don't work. Is there any way to compile shader source code as easily as c++ code?
ShaderToy.com, as far as I can tell, uses GLSL. You don't compile GLSL shaders offline; you give the source to OpenGL at runtime.
Shaders need to run on a wide variety of devices and GPUs. nVidia GPUs are unlikely to use the same machine code as AMD GPUs, or Intel Integrated Graphics, or the CPU if software rendering is being used. The only way to ensure that the shader can be ran is by giving the shader source to the implementation at runtime and letting it compile the shader to whatever format it needs.
Newer versions of OpenGL include the ability to precompile shaders, to speed up loading. The compiled code is implementation specific, though, and thus not cross-platform. Even if you try to load the compiled shader on the same computer you compiled it on, there's still no guarantee it will work, so you still need to bundle the GLSL source code.
You can download mesa and build with passing the -Dwith_tools=[glsl] to generate glsl_compiler.

OpenGL code slow on one computer (but not on others) [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 9 years ago.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Questions concerning problems with code you've written must describe the specific problem — and include valid code to reproduce it — in the question itself. See SSCCE.org for guidance.
Improve this question
I have a shader that is currently doing some raytracing. The shader used to take the scene information as uniforms to render the scene but this proved to be way too limited so we switched to using SSBOs (shader storage buffer objects). The code works perfectly on two computers, but another computer is rendering it very slowly. The video card for that computer is a radeon HD 6950. The video cards that are rendering it correctly are a GTX 570 and a radeon HD 7970. The scene is shown correctly on the three computers but the radeon HD 6950 is rendering it very slowly (1 FPS when we are rotating around the scene). We thought it was a openGL version problem but it doesn't seem to be the case since we updated the drivers and it still doesn't work. Any idea where the problem might be?
There are a few possibilities:
You could be falling off the fast path on that particular card. Some aspect of your rendering may not be implemented as efficiently on the lower-end card, for example.
You may be hitting the VRAM limit on the 6950, but not on the other 2 cards and OpenGL is essentially thrashing, swapping things out to main memory and back
You may have triggered software rendering on that card. There may be some specific OpenGL feature you're using that's only implemented in software for the 6950, but is hardware accelerated on the other cards.
You don't say which OS you're working with, so I'm not sure what to tell you about debugging the problem. On MacOS you can use OpenGL Profiler to see if it's falling back to software and use OpenGL Driver Monitor to see if it's paging out. On iOS you can use Xcode's OpenGL profiling instrument for both of those. I'm not sure on Windows or Linux as I don't have experience with them.

Ray tracing tutorial on GLSL? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I haven't found a good ray tracing tutorial on GLSL, I found one on CUDA that's great, but I really want a GLSL one too. I read the Stanford Graphics paper on GPU ray tracing and I want to see a GLSL implementation.
Shading languages really aren't meant for raytracing. The structure of a rasterizer just doesn't make them a good fit for most raytracing tasks. Yes, raytracers can use rasterizers to do parallel ray computations, and that's good. But the bulk of the algorithm doesn't fit the needs of a rasterizer.
Indeed, now that there are GP-GPU specific languages like OpenCL and CUDA, most of the research time and money is invested in them, not in shoehorning GP-GPU functionality into a rasterizer. It just isn't worth the effort to work around the limitations of a rasterizing pipeline to do raytracing; you'll get better performance with a real GP-GPU language.
And isn't performance the whole reason to do GP-GPU to begin with?