Seite 1 von 1

Problem bei Shader-Kompilierung (Windows, OpenGL)

Verfasst: 14. Nov 2014 12:44
von Boddlnagg
Auf meinem Rechner stürzt das unmodifizierte Beispielprogramm für Übung 5 beim Start ab (wenn das OpenGL-Backend verwendet wird; mit D3D geht es). Es scheint an der Shaderkompilierung zu liegen, denn das Problem tritt auf in compileShader (in ProgramImpl.cpp):
glGetShaderiv(id, GL_COMPILE_STATUS, &result); setzt die result Variable nicht und der uninitialisierte Wert ist != GL_TRUE, daraufhin setzt auch glGetShaderiv(id, GL_INFO_LOG_LENGTH, &length); die length Variable nicht und die folgende Speicherallokation für errormessage schlängt mit einer std::bad_alloc Exception fehl, weil length zu groß ist (negativer int-Wert).

Ich habe einen Intel HD3000 Grafikchip (mit zusätzlicher NVidia-Grafikkarte, die aber dank "Nvidia Optimus" normalerweise nicht verwendet wird).

Re: Problem bei Shader-Kompilierung (Windows, OpenGL)

Verfasst: 14. Nov 2014 15:57
von RobDangerous
Das klingt, als würde mit OpenGL-Shadern da so grundsätzlich gar nix funktionieren. Zumindest glGetShaderiv(id, GL_INFO_LOG_LENGTH, &length); sollte ja tun. Ist der Treiber aktuell?

Re: Problem bei Shader-Kompilierung (Windows, OpenGL)

Verfasst: 16. Nov 2014 13:10
von Boddlnagg
Auch nach einem Treiberupdate bleibt die Situation die selbe. Aber inzwischen habe ich herausgefunden, wie ich die NVidia-Grafik stattdessen verwende, und damit geht es.

Allerdings auch nur bis zu dem Punkt, wo der DepthTest aktiviert wurde, denn mit angeschaltetem Depthbuffer bleibt unter OpenGL der Bildschirm schwarz, auch bei meinen Teamkollegen (Mac OSX). Mit D3D funktioniert bei mir weiterhin alles.

Re: Problem bei Shader-Kompilierung (Windows, OpenGL)

Verfasst: 16. Nov 2014 17:40
von RobDangerous
bzgl. depth buffer und OpenGL gab es noch einen Bug, den ich am Freitag behoben hatte. Bitte Kore einmal aktualisieren (git pull origin master im Kore-Verzeichnis).