Der Stack-Überlauf kommt bei mir auch nach dem letzten Update. Welches Betriebssystem war denn bei dem Test im Einsatz? Bei dem NAN-Problem ist es evtl. ja auch so, dass es nur unter Windows 10 und 11 auftritt, nicht aber mit Windows 7. Bei mir läuft Windows 11, ich habe es aber auch mal mit Windows 10 getestet (gleiches Ergebnis). Windows 7 steht mir leider nicht zur Verfügung.Carsten Hölscher hat geschrieben: ↑16.08.2022 22:18:31 Leonards Fehler konnte ich übrigens nicht nachstellen.
Diskussionen zu 64 bit beta
- Leonard K.
- Beiträge: 1062
- Registriert: 12.06.2020 19:03:07
- Aktuelle Projekte: NMH
Re: Diskussionen zu 64 bit beta
Re: Diskussionen zu 64 bit beta
Ich würde mal melden, dass es bei mir in der 3.4.99.37 weiterhin auftritt. Ich kann hier nur vorschlagen, aber ich fürchte, das ist die einfachste Repro, die sich finden lässt, und ich habe so ein bisschen die Hoffnung, dass die von Jonezz25 und vielleicht auch Adrian oder sogar Leonard gemeldete Fehler dann automatisch weg sind.F. Schn. hat geschrieben: ↑28.06.2022 21:03:17 Ich habe mal auf Verdacht den Schlüssel HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management\AllocationPreference auf 0x100000 gesetzt (siehe viewtopic.php?p=257903#p257903 ) und habe den Rechner neu gestartet. Jetzt stürzt Zusi schon beim ersten ganz normalen Start (Streckenbaututorium, Üg) mit einer SIGSEGV ab.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
- Carsten Hölscher
- Administrator
- Beiträge: 33445
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
Code: Alles auswählen
function TD3DZusiFont.TexturGenerieren(const strFontName: PChar; Hoehe, Flags: DWORD):HResult;
type
pBit = array[0..0] of DWORD;
PpBit = ^pBit;
var
hndFont,
hndFontOld: Windows.HFONT; //Font-Handles
hDC: Windows.HDC;
hndBitmap: HBITMAP; //Bmp-Handle
hbmOld: HGDIOBJ;
ErsterDurchlauf: Boolean; // Flag clear after first run
pBitmapBits: PpBit; //Pointer auf Device-Independent bmp
bmpInfo: TBitmapInfo;
x, y: DWORD;
d3dlr: TD3DLockedRect;
pDstRow: PByte;
pDst16: PWord;
bAlpha: Byte; // 4-bit measure of pixel intensity
a: LongWord;
FontName:TFontName;
begin
StrLCopy(FontName, strFontName, SizeOf(FontName) div SizeOf(Char));
FontName[SizeOf(FontName) div SizeOf(Char) - 1]:= #0;
FontHoehe:=Hoehe;
FontFlags:=Flags; // or D3DFONT_FILTERED;
hndFont:=0;
hndFontOld:=0;
hndBitmap:=0;
hbmOld := 0;
// Assume we will draw fonts into texture without scaling unless the
// required texture size is found to be larger than the device max
Skalierungsfaktor:=1.0;
hDC:=CreateCompatibleDC(0);
SetMapMode(hDC, MM_TEXT);
Result:=CreateGDIFont(FontName, hDC, hndFont);
if succeeded(Result) then
begin
hndFontOld:=SelectObject(hDC, hndFont);
// Calculate the dimensions for the smallest power-of-two texture which
// can hold all the printable characters
TexturHoehe:=128;
TexturBreite:=TexturHoehe;
Result:=PaintAlphabet(strFontName, hDC, True);
while (Result=D3DERR_MOREDATA) do
begin
TexturBreite:=TexturBreite*2;
TexturHoehe:=TexturHoehe*2;
Result:=PaintAlphabet(strFontName, hDC, True);
end;
//Texturgröße der Graka überschritten ?
if (TexturBreite>d3dCaps.MaxTextureWidth) then
begin
Skalierungsfaktor:=d3dCaps.MaxTextureWidth/TexturBreite;
TexturHoehe:=d3dCaps.MaxTextureWidth;
TexturBreite:=TexturHoehe;
ErsterDurchlauf:= True;
repeat
// If we've already tried fitting the new text, the scale is still
// too large. Reduce and try again.
if not ErsterDurchlauf then Skalierungsfaktor:=Skalierungsfaktor * 0.9;
// The font has to be scaled to fit on the maximum texture size; our
// current font is too big and needs to be recreated to scale.
DeleteObject(SelectObject(hDC, hndFontOld));
Result:=CreateGDIFont(FontName, hDC, hndFont);
if succeeded(Result) then
begin
hndFontOld:=SelectObject(hDC, hndFont);
ErsterDurchlauf:=False;
Result:=PaintAlphabet(strFontName, hDC, True);
end
until Result<>D3DERR_MOREDATA;
end;
if succeeded(Result) then
begin
Result:=pIDirect3DDevice9^.CreateTexture( TexturBreite,
TexturHoehe,
1,
0,
D3DFMT_A4R4G4B4,
Zusi_TexStandardPool,
FontTexture,
nil);
if succeeded(Result) then
begin
// Prepare to create a bitmap
ZeroMemory(@(bmpInfo.bmiHeader), SizeOf(TBitmapInfoHeader));
bmpInfo.bmiHeader.biSize:=SizeOf(TBitmapInfoHeader);
bmpInfo.bmiHeader.biWidth:=TexturBreite;
bmpInfo.bmiHeader.biHeight:=TexturHoehe;
bmpInfo.bmiHeader.biPlanes:=1;
bmpInfo.bmiHeader.biCompression:=BI_RGB;
bmpInfo.bmiHeader.biBitCount:=32;
bmpInfo.bmiHeader.biHeight:=-bmpInfo.bmiHeader.biHeight;
// Create a bitmap for the font
hndBitmap:=CreateDIBSection(hDC, bmpInfo, DIB_RGB_COLORS, Pointer(pBitmapBits), 0, 0);
hbmOld:=SelectObject(hDC, hndBitmap);
// Set text properties
SetTextColor(hDC, RGB(255, 255, 255));
SetBkColor(hDC, $00000000);
SetTextAlign(hDC, TA_TOP);
// Paint the alphabet onto the selected bitmap
Result:=PaintAlphabet(strFontName, hDC, False);
if succeeded(Result) then
begin
// Lock the surface and write the alpha values for the set pixels
FontTexture.LockRect(0, d3dlr, nil, 0);
pDstRow := d3dlr.pBits;
{$R-} //wegen der shr/shl-Aktionen
for y := 0 to (TexturHoehe - 1) do
begin
pDst16 := PWord(pDstRow);
for x := 0 to (TexturBreite - 1) do
begin
bAlpha := (pBitmapBits^[TexturBreite*y + x] and $ff) shr 4;
if (bAlpha > 0) then
begin
pDst16^ := Word((bAlpha shl 12) or $0fff);
Inc(pDst16);
end else
begin
pDst16^ := $0000; // <--------------------- Zugriffsverletzung
Inc(pDst16);
end;
end;
pDstRow := PByte(Integer(pDstRow) + d3dlr.Pitch);
end;
{$R-}
Result:= S_OK;
end;
end
end
end
if (FontTexture<>nil) then FontTexture.UnlockRect(0);
SelectObject(hDC, hbmOld);
SelectObject(hDC, hndFontOld);
DeleteObject(hndBitmap);
DeleteObject(hndFont);
DeleteDC(hDC);
end;
Carsten
-
- Beiträge: 6294
- Registriert: 09.11.2002 02:00:47
Re: Diskussionen zu 64 bit beta
Zurückgezogen.
Ralf
Ralf
Zuletzt geändert von F(R)S-Bauer am 24.08.2022 16:56:18, insgesamt 1-mal geändert.
-
- Beiträge: 17
- Registriert: 13.06.2016 19:52:11
Re: Diskussionen zu 64 bit beta
Code: Alles auswählen
pDstRow := PByte(Integer(pDstRow) + d3dlr.Pitch);
- Max Senft
- Administrator
- Beiträge: 3004
- Registriert: 04.11.2001 14:01:40
- Aktuelle Projekte: Dies und das
- Wohnort: Blieskastel, Saarland, Deutschland
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
Hi,
Anstelle von Int64 vielleicht eher NativeInt nehmen (siehe https://docwiki.embarcadero.com/Librari ... .NativeInt oder https://www.freepascal.org/docs-html/rt ... veint.html). Das ist dann je nach Zielsystem passend.
Gruß
Max
ja, sieht nach der Ursache des Problems aus.SebastianH hat geschrieben: ↑24.08.2022 16:45:25Die Umwandlung vom 64-Bit Zeiger pDstRow in ein 32-Bit Integer schneidet Teile der Adresse ab, da müsste man denke ich Int64 nehmen.Code: Alles auswählen
pDstRow := PByte(Integer(pDstRow) + d3dlr.Pitch);
Anstelle von Int64 vielleicht eher NativeInt nehmen (siehe https://docwiki.embarcadero.com/Librari ... .NativeInt oder https://www.freepascal.org/docs-html/rt ... veint.html). Das ist dann je nach Zielsystem passend.
Gruß
Max
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board
- Gorgi [Vale]
- Beiträge: 203
- Registriert: 10.04.2019 20:22:10
- Aktuelle Projekte: Am Bau bei der LN6 mitwirken.
Mdl Hcknhm, (Pausiert)
Strecke 4020 & 4080 Schwetzingen(Mannheim) bis Üst. Forst / Graben-Neudorf. (Pausiert)
Re: Diskussionen zu 64 bit beta
Nabend,
ich bin grade zufällig auf einen reproduzierbaren Fehler im 3D-Editor gestoßen.
Es geht darum, das im Meldungsfenster keine "Warnungen" gemeldet werden trotz aktivem Haken, konkret geht es darum das ich einen Fehler in eine Signalassistentdatei eingebaut habe, beispielsweise fehlt im Text der Datei bei der verlinkten Datei das "xml" am Ende. Dadurch kann die andere Datei nicht aufgerufen werden im Assistenten, wenn man diese auswählt.
Wählt man diese nun aus im Signalassistent verhält er sich ganz normal, allerdings wird die Datei nicht geöffnet und es erscheint "Keine Warnung" vom Nichtaufrufen der Datei im Meldungsfenster.
In der 3.4 habe ich noch Warnungen erhalten wenn Fehler vorlagen, wie eine falsche Verknüpfung in der Datei.
Ich konnte es leider nicht in der 32bit testen.
Gruß
Gorgi
ich bin grade zufällig auf einen reproduzierbaren Fehler im 3D-Editor gestoßen.
Es geht darum, das im Meldungsfenster keine "Warnungen" gemeldet werden trotz aktivem Haken, konkret geht es darum das ich einen Fehler in eine Signalassistentdatei eingebaut habe, beispielsweise fehlt im Text der Datei bei der verlinkten Datei das "xml" am Ende. Dadurch kann die andere Datei nicht aufgerufen werden im Assistenten, wenn man diese auswählt.
Wählt man diese nun aus im Signalassistent verhält er sich ganz normal, allerdings wird die Datei nicht geöffnet und es erscheint "Keine Warnung" vom Nichtaufrufen der Datei im Meldungsfenster.
In der 3.4 habe ich noch Warnungen erhalten wenn Fehler vorlagen, wie eine falsche Verknüpfung in der Datei.
Ich konnte es leider nicht in der 32bit testen.
Gruß
Gorgi
- Leonard K.
- Beiträge: 1062
- Registriert: 12.06.2020 19:03:07
- Aktuelle Projekte: NMH
Re: Diskussionen zu 64 bit beta
Das Problem besteht bei mir weiterhin. Statt der u-Koordinate wird jetzt aber die v-Koordinate auf NAN gesetzt, während die u-Koordinate auf 0 stehtLeonard K. hat geschrieben: ↑02.06.2022 22:05:04 Polygonbaumodus 3D-Editor 64-Bit: Wenn man mit dem Farbeimer Randelemente markieren lässt, werden die u-Koordinaten alle auf "NAN" statt 0 gesetzt. Mit der 32-Bit Version passiert das nicht:
Einfache Repro: 3D-Editor 64bit öffnen, Objektbaumodus, Streckenelement markieren und Formkurve anwenden. Dann ein beliebiges Dreieck markieren und im Polygonbaumodus auf den Farbeimer drücken:
- Christian Lehanka
- Beiträge: 585
- Registriert: 04.11.2001 22:11:12
- Aktuelle Projekte: 3D-Editor + Blender
- Wohnort: Crailsheim
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
Hallo,
Gruß
Christian
das Problem besteht weiterhin (ZusiSim.exe : 3.4.99.51)Christian Lehanka hat geschrieben: ↑18.08.2022 10:48:56 Hallo,Christian Lehanka hat geschrieben: ↑09.06.2022 09:34:37 Hallo,
bei der 64bit-Version funktioniert die Fahrzeugvorschau im Fahrplaneditor nicht mehr richtig.
links 32-bit rechts 64-bit
Gruß Christiandas Problem besteht bei mir weiterhin (ZusiSim.exe : 3.4.99.37).Carsten Hölscher hat geschrieben: ↑09.06.2022 17:16:01 Dann wartet vielleicht einfach aufs nächste Update, denn bei mir geht es ja im aktuellen Stand.
Carsten
Gruß
Christian
Gruß
Christian
- Carsten Hölscher
- Administrator
- Beiträge: 33445
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
Die Meldungen in diesem Thema sind noch nicht alle in das aktuelle Uodate eingeflossen. Das checke ich gerade noch durch.
Carsten
Carsten
- Carsten Hölscher
- Administrator
- Beiträge: 33445
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
Ist das noch aktuell? Wenn ja bräuchte ich bitte mal eine exakte Anleitung mit den dafür nötigen Daten. Und ist das wirklich eine reine 64bit-Frage? Also 32bit verhält sich korrekt?Gorgi hat geschrieben: ↑08.10.2022 18:41:57 Nabend,
ich bin grade zufällig auf einen reproduzierbaren Fehler im 3D-Editor gestoßen.
Es geht darum, das im Meldungsfenster keine "Warnungen" gemeldet werden trotz aktivem Haken, konkret geht es darum das ich einen Fehler in eine Signalassistentdatei eingebaut habe, beispielsweise fehlt im Text der Datei bei der verlinkten Datei das "xml" am Ende. Dadurch kann die andere Datei nicht aufgerufen werden im Assistenten, wenn man diese auswählt.
Wählt man diese nun aus im Signalassistent verhält er sich ganz normal, allerdings wird die Datei nicht geöffnet und es erscheint "Keine Warnung" vom Nichtaufrufen der Datei im Meldungsfenster.
In der 3.4 habe ich noch Warnungen erhalten wenn Fehler vorlagen, wie eine falsche Verknüpfung in der Datei.
Ich konnte es leider nicht in der 32bit testen.
Gruß
Gorgi
Carsten
- Carsten Hölscher
- Administrator
- Beiträge: 33445
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
Bei mir weiterhin OK. Können das bitte mal ein paar weitere Leute testen, um mal ein Gefühl für die Verbreitung des Problems bzw. mögliche Ansätze zu bekommen?Leonard K. hat geschrieben: ↑06.01.2023 16:22:48
Das Problem besteht bei mir weiterhin. Statt der u-Koordinate wird jetzt aber die v-Koordinate auf NAN gesetzt, während die u-Koordinate auf 0 steht
Einfache Repro: 3D-Editor 64bit öffnen, Objektbaumodus, Streckenelement markieren und Formkurve anwenden. Dann ein beliebiges Dreieck markieren und im Polygonbaumodus auf den Farbeimer drücken:
Carsten
- Carsten Hölscher
- Administrator
- Beiträge: 33445
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
bei mir nicht reproduzierbar.
Carsten
-
- Beiträge: 8974
- Registriert: 04.11.2001 19:57:46
- Aktuelle Projekte: Zusi3 Objektbau
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
Bei mir auch. Dass im neuen Editor jetzt aber die v-Koordinate auf NAN gesetzt wird kann ich nicht bestätigen. Bei mir ist es weiterhin die u-Koordinate.Leonard K. hat geschrieben: ↑06.01.2023 16:22:48 Das Problem besteht bei mir weiterhin. Statt der u-Koordinate wird jetzt aber die v-Koordinate auf NAN gesetzt, während die u-Koordinate auf 0 steht
Mein Youtube-Kanal: youtube.com/echoray1
-
- Beiträge: 1334
- Registriert: 21.05.2019 14:38:14
Re: Diskussionen zu 64 bit beta
Bei mir ebenfalls.
Re: Diskussionen zu 64 bit beta
Win7 -> funktioniert.
Win11 -> u-Koordinate auf NAN.
Win11 -> u-Koordinate auf NAN.
Re: Diskussionen zu 64 bit beta
Moin Carsten,
mit der neuen Beta hab ich das Problem nicht mehr, auch die Mini-Ruckler sind weg, danke
Gruß Adrian
- Carsten Hölscher
- Administrator
- Beiträge: 33445
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
Tritt das noch auf? Bei mir ist es weiterhin unauffällig.Leonard K. hat geschrieben: ↑18.08.2022 12:17:14 Der Stack-Überlauf kommt bei mir auch nach dem letzten Update. Welches Betriebssystem war denn bei dem Test im Einsatz? Bei dem NAN-Problem ist es evtl. ja auch so, dass es nur unter Windows 10 und 11 auftritt, nicht aber mit Windows 7. Bei mir läuft Windows 11, ich habe es aber auch mal mit Windows 10 getestet (gleiches Ergebnis). Windows 7 steht mir leider nicht zur Verfügung.
Carsten
- Leonard K.
- Beiträge: 1062
- Registriert: 12.06.2020 19:03:07
- Aktuelle Projekte: NMH
Re: Diskussionen zu 64 bit beta
Das Problem mit dem Stack-Überlauf scheint jetzt behoben zu sein.Carsten Hölscher hat geschrieben: ↑07.01.2023 13:29:42Tritt das noch auf? Bei mir ist es weiterhin unauffällig.Leonard K. hat geschrieben: ↑18.08.2022 12:17:14 Der Stack-Überlauf kommt bei mir auch nach dem letzten Update.
- Carsten Hölscher
- Administrator
- Beiträge: 33445
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Diskussionen zu 64 bit beta
In meinem aktuellen Stand läuft es korrekt. Bitte testet es mit dem gleich folgenden Update noch einmal.Christian Lehanka hat geschrieben: ↑09.06.2022 09:34:37 Hallo,
bei der 64bit-Version funktioniert die Fahrzeugvorschau im Fahrplaneditor nicht mehr richtig.
links 32-bit rechts 64-bit
Gruß Christian
Undbei Fehlern dann bitte mal Fahrplan und Zug dazu.
Carsten