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] [EINKLAPPEN] Type TFlare Global count:Int Global liste:TList = New TList Field link:TLink Field typ:Int Field x:Float Field y:Float Field rotation:Float Field rotationadd:Float Field speed:Float Field direction:Float Field scale:Float Field scaleadd:Float Field alpha:Float Field alphaadd:Float Field alpharichtung:Int Field color:Int Field presinusx:Float Field precosinusy:Float
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 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 Method Destroy:TFlare() count :- 1 link.Remove() End Method End Type
~EDITIERT~
Wie gewünscht ein wenig aufgeräumt
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
|