Performance Probleme seit letztem Treiberupdate (Radeon)

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Pokoyo

Betreff: Performance Probleme seit letztem Treiberupdate (Radeon)

BeitragSa, Aug 26, 2017 6:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,
seit dem letzten Radeon Treiber Update (17.30.1071) gibt es erhebliche Performance Einbußen hinzunehmen. Ist Jemandem war ähnliches aufgefallen ?
Wo ich in meinem aktuellen Projekt vorher 12000 Flares (Einzelgrafiken bei Explosionen und Rauch) unter 10ms darstellen konnte, stockt es jetzt bereits bei ca. 2500.
Das kann doch nicht sein ?
Ich benutze den D3D9 Treiber in BMAX.
Habe schon versucht im Radeon Treiber die Texturqualität und Filterung auf ein Minimum zu reduzieren. Ohne Erfolg.
Woran kann das liegen ?

Gruß Poko

PS: Hab ne R9 290X mit 4 GB

Edit: Hier nochmal den betreffenden Codeausschnitt :

BlitzMax: [AUSKLAPPEN]
'###################################       Klasse für Explosion, Feuer und Rauch (Einzelteile)       
Type TFlare
'Globalen (für alle Instanzen von TFlare gültig)
Global count:Int 'Anzahl der Objekte
Global liste:TList = New TList 'Objekt Liste
'Member für TFlare Instanzen
Field link:TLink 'Link des Objekts
Field typ:Int 'Typ/Art des Flares
Field x:Float 'X Koordinate
Field y:Float 'Y Koordinate
Field rotation:Float 'Rotation
Field rotationadd:Float 'Rotation addiert pro Aufruf
Field speed:Float 'Geschwindigkeit
Field direction:Float 'Flugrichtung
Field scale:Float 'Skalierung
Field scaleadd:Float 'Skalierung addiert pro Aufruf
Field alpha:Float 'Alpha
Field alphaadd:Float 'Alpha addiert pro Aufruf
'Optional
Field alpharichtung:Int 'Abschwellen und ansteigen 1=aufsteigend 2 = abschwellen
Field color:Int 'farbe/helligkeit
'Nur für Vorberechnung
Field presinusx:Float 'Vorberechnung Sinus und x
Field precosinusy:Float 'Vorberechnung Cosinus und y



'Erstellen einer Instanz von TFlare
Function Create:TFlare (typ:Int, x:Float, y:Float, rotation:Float, rotationadd:Float, scale:Float, scaleadd:Float, speed:Float, direction:Float, alpha:Float, alphaadd:Float, alpharichtung:Int=2, color:Int=255)
Local t:TFlare = New TFlare
t.typ = typ
t.x = x
t.y = y
t.rotation = rotation
t.rotationadd = rotationadd
t.scale = scale
t.scaleadd = scaleadd
t.speed = speed
t.direction = direction
t.presinusx = Sin(t.direction)*t.speed
t.precosinusy = Cos(t.direction)*t.speed
t.alpha = alpha
t.alphaadd = alphaadd
t.alpharichtung = alpharichtung
t.color = color
t.link = liste.AddLast(t)
count:+ 1
Return t
End Function
'Update Aller Flares
Function update:TFlare()
Local counter:Int = 0
For Local t:TFlare = EachIn TFlare.liste
counter :+ 1
Select t.alpharichtung
Case 1
t.alpha :+ t.alphaadd
If t.alpha >= 1 Then t.alpharichtung = 2
Case 2
t.alpha :- t.alphaadd
If t.alpha <= 0
t.destroy
Continue
EndIf
EndSelect
t.x :+ t.PreSinusX
t.y :+ t.PreCosinusY
Local txdummy:Float = t.x + worldx
If txdummy < 0 Or txdummy > 4000 Or t.y < 0 Or t.y > 1080 Then Continue
t.rotation :+ t.rotationadd
t.scale :+ t.scaleadd
Local blend:Int
Select t.typ
Case 0,1,2
blend = LIGHTBLEND
Case 3,4,5
blend = ALPHABLEND
End Select
SetitAll (blend, t.color, t.color, t.color, t.alpha, t.rotation, t.scale * GlobalScale, t.scale * GlobalScale)
DrawImage FlareGrafik[t.typ], txdummy * GlobalScale, t.y * GlobalScale + GlobalYOffset
Next
TD7=counter
End Function
'Nullen des Objekts bzw. Freigabe für den GarbageCollector
Method Destroy:TFlare()
count :- 1
link.Remove()
End Method
End Type



~EDITIERT~

Wie gewünscht ein wenig aufgeräumt Wink
LG Holzchopf

Edit: 26.11.17
Sorry dafür dass ich diesen alten Thread nochmal editieren muss. Aber vlt. ist es von Interesse zu wissen dass mit dem neuesten Treiberupdate 17.11.2 dieses Problem nun nicht mehr besteht.
Ich finde es sehr komisch dass das Performance Problem sich nur bei BMAX bemerkbar gemacht hat.
Auf Spiele hatte das ganze keinen Einfluss.

Gruß Poko

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group