feodor2 Posted March 7 Posted March 7 Okey I shall do about it whole too, but not soon Now you stuck with cbindgen, so let solve this first
grey_rat Posted March 7 Posted March 7 (edited) http://forum.ru-board.com/topic.cgi?forum=5&topic=51380&start=540#2 MyPal 68.13.2 for videocards OpenGL 3.2+ gfx.webrender.force-angle - false gfx.webrender.blob-images - false gfx.webrender.enabled - true The browser searches for the OpenGL driver and checks what features it supports. If the feature set is complete, the browser will allow you to enable Webrender via OpenGL. For OpenGL 2 videocards, on Windows XP, the LLVM software driver is incomplete enough to enable Webrender. Edited March 7 by grey_rat
feodor2 Posted March 7 Posted March 7 Did not expect that rust is so treacherous. I tried to build cbindgen from scratch, it downloaded something, now I fail with rust too. I know it keeps a kind of a sdk, likely it updated it and overwritten with new. This is very bad. I need restore old sdk I looking a way for not allow touching the sdk at all
user57 Posted March 8 Posted March 8 can somebody explain why the "rust" questions always apears i remember this one i was looking at the code and saw the imports at some place then k4sum1 wrote: this is rust but that wasnt even the problem the problem was that .obj file trick by doing that .obj trick a change to that function is blocked (cant be linked together) as i tryed to describe - thats the trick if it aint doing that .obj trick the functions can be linked against ours (thats why i made the c++ side file with the 150 functions) whatever rust is doing is limited to win32 api functions and engines that part was never a rust problem i do not understand why he said "that is rust" - it looks like we have a missunderstanding but here is why i keept saying - you need to talk - its not smalltalk (like you asking me to know youtubedl code - why?) we need the to put the right questions together the more i had to solve like "lerning rust first" - that opens more questions means more things to do this is not a must if you can talk it would be possible to change the compiler to not use that .obj file (either ms´s or llvm´s, maybe the others) the approaches to do so are different - that was suppose to be the next step on the list but to all that think about that "new compiler problem" the story i have to tell is a little different the new c++ styles cant do anything that the pre c++ cant do they are often only different write styles ... that being said you have to know the next thing the next thing is that it not always is a style question what microsoft and others did here is that these compilers (for example the use of STD functions) they changed up the code one example is the MUTEX - you can use a mutex (atom) method in like windows 98 (there are solutions like that like a threading-modell) - then they are the SRW locks (these are vista-ish but work on xp) but more importantly here is what they did the MUTEX (and others like file, registy and other control code) where changed to use vista, win10 or win11 functions this is uncommon - that method rather describes a script (like java and other high languages) high languages have a problem they are slower then the others - thats a must say shortly so here is the normal thing instead of SDT functions these functions normally are written out like not do "SDT file control" you write a controlment aka createfile writefile this code is now changed into that SDT/c-runtime ect. yes it is in there (with a win10 implementation ect.) thats why they used that .obj file trick this is to block the backchange - so it always use up these win10/11 ect. codes thus they bring up these problems again its not like there are not already fully functional MUTEX/ect. functions - they exits hope this was helpful
feodor2 Posted March 8 Posted March 8 Okey now I build cbindgen with rust 52. 13 hours ago, user57 said: can somebody explain why the "rust" questions always apears Some firefoxes code are in rust and important code
feodor2 Posted March 8 Posted March 8 Building cbindin details assume you already have rust 52 1. git clone https://github.com/eqrion/cbindgen 2. go to cbindgen 3. git checkout v0.20.0 4. cargo build
user57 Posted March 9 Posted March 9 that one ? https://releases.rs/docs/1.52.0/ it names LLVM v12 i made v17.0.1.0 https://msfn.org/board/topic/183588-project-saphire-dragon-port-llvm-and-clang/ i need a bit more information about greyrat´s answer in the forum he links is like old LLVM versions from 2015 (the oldest version on LLVM github is LLVM 7.1.0 and is from 2019) and writes something about a LLVM driver - i do not understand that part - it might be a missunderstanding LLVM is a compiler that generates a code, its not a software driver if a function is called and returned not possible or something it might be an different problem LLVM is newer then VS 2019 (v16.11) (LLVM v17 is from Sep 19, 2023) and allows more modern c++ styles then vs2019
grey_rat Posted March 9 Posted March 9 Gallium 0.4 on llvmpipe (LLVM 3.4, 128 bits) , 3.0 Mesa 10.2.8 - the last one that could use Firefox in Windows XP how to install: https://download.qt.io/development_releases/prebuilt/llvmpipe/windows/ file opengl32sw-32.7z (25-Sep-2014 14:30) rename opengl32sw.dll in opengl32.dll move file opengl32.dll in browser folder, example C:\Program Files\Mozilla Firefox the browser will automatically see this file and use it as an OpenGL driver file example, For Webrender, Firefox immediately tries to use opengl32.dll In order for the browser to use opengl32.dll for WebGL, you need to toggle these options webgl.disable-angle — true webgl.force-enabled — true gfx.prefer-mesa-llvmpipe — true
feodor2 Posted March 9 Posted March 9 9 hours ago, user57 said: that one ? https://releases.rs/docs/1.52.0/ Yes, this version I use for mypal now.
user57 Posted March 9 Posted March 9 (edited) that opengl method being talked about is a dll wrapper in theory it can be the compiler (LLVM) the more likely problem comes that the compiled dll (in this case the opengl32.dll wrapper) malfunctions asking for the compiler it would be worth a try if that problem has been fixed (you have v17 now) but as i said i dont think that to be the problem the last parameter might have something related to LLVM but not its code compiler that LLVMpipe seems a specific code to me, that might malfunctions - but if that would be the problem you would have a newer version to try if its LLVMpipe its not the compiler - it has nothing to do with the "compile progress of firefox" only a certain option - to begin with something we would have to start at some point - not just fully functional and version v148 the actual state is to notice here - the code not even compiles up, what means this specific function would come later on what also raise a important question, if that LLVMpipe is a certain code then it actually might use newer settings (what xp dont have)(and then malfunction, also it might just break and not apear even partly functional - in this case you have to fix out the problems related to this step by step)) how exactly that webgl function on XP normally function (if it work do it use the normal opengl32.dll with the specific setting? or have that normal opengl32.dll ever had that specific extension setting being functional?, the picture actually shows d3d9.dll (direct3d 9) to be set not opengl32.dll) opengl32.dll is not a driver the real driver apears later on (also d3d11.dll is not a driver either) the real code like cuda driver (nvidia) control apears far later on so now we have to sort the things to me it seems someone tryed to compile that openglwrapper up and placed it to mypal and then said LLVM cant be used for the compile at current standpoint that seems to be wrong questioning - to me the LLVM compiler seems to be useable - that specific function would be a different question for the firefox compile a big problem was that the previos described .obj trick - what the LLVM compiler would be useful feodor2, ok we could fix the version question it is asking for 1.52 - it would be worth a shot with LLVM v17 instead of LLVM v3.4 (greyrats) or LLVM v12 (1.52 requiements) now its your turn again guys, to bring your kind of stuff questions and problems to the next part of discussion --- also i might add this seems to be a similar fault idea i was seeing in a other discussion in that case it was : d3d11 -> kernel-mode cuda then it was : LAV_filter -> d3d11 (and user-mode based cuda) -> kernel mode cuda the problem is that LAV_filter is a windows 10/11 solution , that actually use ring3 cuda and d3d11 (that xp dont have) - also the cuda driver in XP kernel-mode is not like the ones from 10/11 - they are far older versions so the idea probaly was "i use LAV_filter" -> works - but no the LAV_filter is not independed its a pre-engine that use up win10-ish code internal - that dont work for xp - having that in win10 would so i have to tell the other story in short the next idea was "using ffmpeg" -> works now comes a different part of story - ffmpeg was independed in the past, self-contained but in newer versions ffmpeg use cuda, d3d11 and other win10 codes so the truth is ffmpeg is no longer self-contained you guys see the similiar problem ? in that LLVMpipe its the same fault a 3 time - its like "we use that engine - works" - in win10 maybe so what i did i explained that these thing all use win10/11 depending codes - they are engines, api´s, interfaces, dll´s, whatever we call them (we dont need a more precise description for these) so what fixed that is a own controlment of the codec (x265 for example or libde265) - those are fully independent the other solution they wanted dont work mainly because they dont have CUDA in kernel-mode (cuda kernel-mode is what controls the grafic card) - its not opengl.dll or d3d11.dll (this are pre engines) - later on they go through a first kernel mode thing called win32k.sys and later on the provided video card driver (useally a .sys file) often its a nvidia driver (one word about the user-mode cuda - nvidia made some user-mode functions that can be called - what later on controls the kernel-mode cuda (but the user-mode cuda.dll is a pre-engine - and very old in version on XP) ) - this cuda.dll is user-mode based - but somewhat have the same name - but its not the same cuda as the kernel-mode cuda so to do this someone would have to write a own cuda controlment that controls the grafic card - what sounds nearly impossible - unless you would have insight in the nvidia company´s driver code i tell this story beause it shows the same fault, and with this information we might reach a better level where the problems really are here it was like "opengl+llvm" = works (the others was like "+cuda" = works or "+ffmpeg" = works or "+LAV_filter = works) Edited March 10 by user57 1 type error, telling the other fault
grey_rat Posted March 9 Posted March 9 I think it's important to just run the r3dfox on XP at the beginning. If it runs on XP at least on a GF8600 video card, it will already be a victory.
K4sum1 Posted March 12 Author Posted March 12 On 3/8/2026 at 10:05 AM, feodor2 said: Building cbindin details assume you already have rust 52 1. git clone https://github.com/eqrion/cbindgen 2. go to cbindgen 3. git checkout v0.20.0 4. cargo build What about llvm though. From my understanding, you took the llvm version that build rust 1.35? Should I also build rust 1.35 and take the llvm generated by its build process?
feodor2 Posted March 12 Posted March 12 (edited) 4 hours ago, K4sum1 said: What about llvm though. From my understanding, you took the llvm version that build rust 1.35? No, I think there clearly indicated that it is llvm 9, but there where the one file missed though so I took it from rusts, not a require I think may take the file elsewhere it does nothing significant. Rust 35 I used in my very first builds, today it is unnecessary I tried llvm 10 and it puts code for modern windowses, is it possible make llvm not put modern code - yes of course. Meanwhile llvm 9 is still perfectly valid on 105 and I think so about 115, no point to switch it. Actually I use 9.0.1 version now. Edited March 12 by feodor2
K4sum1 Posted March 13 Author Posted March 13 (edited) 10 hours ago, feodor2 said: No, I think there clearly indicated that it is llvm 9, but there where the one file missed though so I took it from rusts, not a require I think may take the file elsewhere it does nothing significant. Rust 35 I used in my very first builds, today it is unnecessary I tried llvm 10 and it puts code for modern windowses, is it possible make llvm not put modern code - yes of course. Meanwhile llvm 9 is still perfectly valid on 105 and I think so about 115, no point to switch it. Actually I use 9.0.1 version now. Where did you get this copy of llvm? Maybe it would be easier for you to upload it somewhere and give it to me. Edited March 13 by K4sum1
user57 Posted March 13 Posted March 13 "I tried llvm 10 and it puts code for modern windowses" did you consider that .obj trick ? https://msfn.org/board/topic/182888-how-vs-makes-working-code-still-incompatible/ (this also includes for example a newer style of the SDT) for elder versions to be set the compiler ignores some .obj files (you can set like xp instead of the UCRT it is theoretical also said that this is the c++17 + style - but that style not only include certain c writeforms - that styles use internal codes that are often only written for win10/ect - the UCRT up to like VS2019 16.7 worked in most of the cases in XP) however then it cant use many functions and fails to compile it is made so that the code dont compile and dont work if you dont do that
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now