ENIGMA Development Environment
Website is in read-only mode due to a recent attack.

Pages: 1 2 3 »
  Print  
Author Topic: Phase 1/2 - Help wanted - Please help me test a fix to ENIGMA's font problem  (Read 5486 times)
Offline (Unknown gender) Darkstar2
Posted on: June 03, 2014, 12:36:52 AM
Member
Joined: Jan 2014
Posts: 1238

View Profile Email
Update June 8 2014
Please refer to this topic which is up to date:
http://enigma-dev.org/forums/index.php?topic=2022.0

=============================

Ok I decided to open a new topic so in case you were not following, this is concerning issue here:

http://enigma-dev.org/forums/index.php?topic=1976.0

I would like this topic to be strictly for testing of a project I am submitting, the rest can be discussed there.  For some strange reason I am having issues with fonts rendering, and apparently now some other people too.   Somehow neither official developers of ENIGMA want to implement a temporary fix to the problem for whatever reason, even though we all know this is only a temporary fix.  Since the devs have clearly have no more time to devote for major fixing of ENIGMA and this issue won't be fixed in any short term, I see nothing wrong in patching things temporarily, but first I am submitting this test project for everyone interested to test, I would kindly appreciate as many people taking part in this, because if it works well for all I see no reason why not implement this for the time being until an official fix is found, in 10 years, 20 years, or 100 years.

Regardless if the official devs give a shite anymore or care, I DO...... in worst cases if they refuse to implement the changes, I will do them on my own inside my game, I don't need their approval or permission for that and it is my right to code the game I want.......

Meanwhile I tested the following fix on 3 different systems, including a very recent build I am using.  Each system I tested it on has drastically different hardware and drivers / and different GPUs and drivers and all exhibit the same visual anomalies.

Here's what I would like ......

I have submitted an attached EGM file, please run it using OPENGL1.1.  The EGM project is already set to default OGL1.  The EGM is there just for reference, please run the EXE, this will avoid any modifications to the CPP just in case. You will see a screen with instructions and 15 lines of 11111111111's shifted 1px each line
along with a scrolling background.

By default it is using no fix.  Press 1 to apply fix, press 0 to disable fix.  (don't use numerical pad).

On my end, when I press 1 the 111's display properly.
when I press 0 they don't.

Picture below shows what I am seeing (the problem) without fix.


Picture below now shows fix applied


This is the desired result you want to see.

If using the EGM, please DO NOT CHANGE anything in my code, I would like everyone to test this unmodified as to not create a bias !

1) Press 1 to enable FIX
2) Please report back if the 1's are displayed like the 2nd image (correctly)
2b) Note any scrolling anomalies in the background image below text.  This fix should NOT have any effect on scrolling.  Please watch for any flickering vertical lines on the scrolling background and report them.
3) Include your graphic card model (AMD, NVIDIA, etc) brand and model, and driver version, and OS.


I've already tested this on many systems and it works with fix on.

Appreciate your help.  If this fix works for every one testing this, I will go ahead and apply this fix internally in my projects, this way ENIGMA won't have to be modified in any way, and even if it does, 0.01 offset won't break anything !!!!

The FIX in question is this line:
d3d_set_projection_ortho(0.01,0,room_width,room_height,0)
in draw event.  I don't care to hear if this is a disgusting fix or what not, if any of the devs have a better idea they can let me know, I've followed all their requests and tested all they have asked already.

The recent pull request to remove recent offsets from ENIGMA was not yet merged, so if you have updated ENIGMA you might have offsets present in your source which will bias the results.

Before running this test please make sure your
GLMatrix.cpp, GL3Matrix.cpp, and GL3ModelStruct.h
do not include any previous fixes that was applied during last merge.
Here are the 3 files
https://github.com/enigma-dev/enigma-dev/pull/736/files

IN red you will see the code you should remove
if present on these files and save.  I would like to avoid any bias and everyone test with the same version of ENIGMA's source.

P.S.  The changing of CPP only applies if you are using my EGM and compiling - this does not apply if you are running the EXE. 

If you don't feel comfortable or know how to edit the CPP files, then use the EXE version which is compiled from the correct source code.

Please ignore any blurriness you might notice in the images, this is caused by resizing - the display is razor sharp and crisp originally.  Ignore any unusual spacing as well, this is result of monitor upscaling.

Thank you very much for your help.

All these changes are opposed by the developers, yet all of them claim they have no time or obligation to fix anything, so whatever, I will take care of this shit once and for all  and do so from inside my project, this way everyone is happy.  Who are they kidding ? the real issue will require more work and time they don't bloody have so are we going to trail with this problem until it gets fixed in God knows when or are we going to apply a temporary fix that works for all until it gets addressed officially ?

Source project EGM is attached, otherwise compiled EXE is linked here (recommended)
The EGM is just for reference in case someone dares claim I am making it up or rigging.  The EXE is a direct compile from this very EGM.

EXE here:  https://www.dropbox.com/s/y0sdvfuxfv89nqo/TextAndScrollTesting.exe
« Last Edit: June 08, 2014, 04:21:22 PM by Darkstar2 » Logged
Offline (Unknown gender) Darkstar2
Reply #1 Posted on: June 03, 2014, 12:43:08 AM
Member
Joined: Jan 2014
Posts: 1238

View Profile Email
*** Source EGM removed for the time being as the current source has previous offsets that were not working for everyone ***
« Last Edit: June 07, 2014, 01:58:39 PM by Darkstar2 » Logged
Offline (Unknown gender) Darkstar2
Reply #2 Posted on: June 03, 2014, 12:53:52 AM
Member
Joined: Jan 2014
Posts: 1238

View Profile Email
Here is the EXE
https://www.dropbox.com/s/y0sdvfuxfv89nqo/TextAndScrollTesting.exe

This is compiled from the EGM source posted above as an attachment and is there just for reference.

Also This anomaly concerns OpenGL.  DX9 does not have this font anomaly and requires no fix.

You don't need to modify any CPP obviously if you are running the EXE.

Thank you.




« Last Edit: June 03, 2014, 02:17:35 AM by Darkstar2 » Logged
Offline (Unknown gender) Darkstar2
Reply #3 Posted on: June 03, 2014, 01:19:41 AM
Member
Joined: Jan 2014
Posts: 1238

View Profile Email
With your exe I am seeing what you have in image 1.

Ok, but please follow the steps outlined in the post
and the instructions on screen.
Press 1 to enable FIX.  You should see the 1's display correctly.  (At least that is what happens here).
Press 0 to disable the FIX it should revert back to what you were seeing at the time you ran the EXE.
When you press 1 tell me if you see the equivalent of image 2.

(don't press 1 on the numerical keypad, but 1 on the keyboard (above the Q)

« Last Edit: June 03, 2014, 01:21:57 AM by Darkstar2 » Logged
Offline (Unknown gender) Darkstar2
Reply #4 Posted on: June 03, 2014, 02:09:02 AM
Member
Joined: Jan 2014
Posts: 1238

View Profile Email
Yep, works as advertised :)

Toggles between the two images.

Thanks mate......... That's good news.
Now I would like to see the results of other people as well. TO make sure I cover as many different system configs.

Also you forgot to mention some details,
system OS, GPU model/type, drivers,etc.
That would be very helpful.

Thanks.

@TKG @Harri if you could please test that one for me and let me know if you get the same results as Lone and myself.

@Robert despite your complete refusal to want to fix this using this method, please run this and let me know if this displays well for you when you press 1 to enable FIX, and you have no scrolling glitch.

@anybody else active on this forum, the more feedback on this the better.  Right now it is established that Robert has an AMD card.....I have NVIDIA and Lone has NVIDIA. I would really like to see some results also for AMD cards and other types.







« Last Edit: June 03, 2014, 02:20:57 AM by Darkstar2 » Logged
Offline (Unknown gender) The 11th plague of Egypt
Reply #5 Posted on: June 03, 2014, 03:34:16 AM
Member
Joined: Dec 2009
Posts: 274

View Profile
For me it's the same.
Which is strange, since my card has the ability to come up with some strange artifacts for some games.
I have a ATI Radeon HD 4570 (an old mobile GPU) on Windows 7 x64.
Logged
Offline (Unknown gender) Darkstar2
Reply #6 Posted on: June 03, 2014, 07:59:50 AM
Member
Joined: Jan 2014
Posts: 1238

View Profile Email
For me it's the same.
Which is strange, since my card has the ability to come up with some strange artifacts for some games.
I have a ATI Radeon HD 4570 (an old mobile GPU) on Windows 7 x64.

Thanks, could you be more specific ? Are you seeing the equivalent of image 1 (bad display) or image 2 (good display) - Also the scrolling background, is it displayed properly ? no flickering or lines, etc ?

Also, do you see what I mean by the offset issue also?

What I mean is the digits appear to be in pairs. So, the spacing isn't even (which possibly relates to the original issue, maybe).

BTW, I am running Win 7 (x64), NVidia driver version? Not sure, whatever the latest are (I am on iPad ATM so can't check).

Yes it's more visible without fix applied (when 1's are displayed poorly).  With fix, yes I can see the pairs issue, but this is not an issue.   Don't forget my screen res was 800x600, game size 640x480 and all this gets upscaled, also the display is window so so it's shrunk (some pixels get removed) - I've tested this extensively, whenever using a game resolution = to monitor resolution you won't see this issue as much and when on native resolution, none.  So this is why I am focusing strictly on the artifacts for now, since the other issue is not an ENIGMA issue at all and a normal side effect of scaling / monitor resolution that I can reproduce with any game or demo with text that is running in window mode or not in 1:1 with monitor resolution.  NO worries there.

Thanks.
Logged
Offline (Unknown gender) egofree
Reply #7 Posted on: June 03, 2014, 02:15:04 PM
Contributor
Joined: Jun 2013
Posts: 601

View Profile Email
I've an Alienware X51 with an Geoforce GTX 660 OEM. I tested your application :
- On Linux Mint KDE 64 bits, with Nvidia drivers 319.32. No problem. Before and after the fix, everything is perfect.
- On Windows 7 64 bits, with Nvidia drivers 337.88.  Before the fix, i've the same same error as you, and after the fix, everything is ok.
« Last Edit: June 03, 2014, 02:17:26 PM by egofree » Logged
Offline (Unknown gender) Darkstar2
Reply #8 Posted on: June 03, 2014, 02:33:38 PM
Member
Joined: Jan 2014
Posts: 1238

View Profile Email
Great information there thanks EgoFree. :D
So far good news.

BTW the rounding 1000 is out of the question now, I've done more tests with my new projects and it screws up completely the scrolling background. 

What about trying in Linux with the same NVIDIA driver revision (337.88) if possible (if it's out even).

I too had weird results from one driver to another.

But it's good to see the tiny offset did not have a negative impact on anybody so far and good to see I am not the only one with this issue.

Logged
Offline (Unknown gender) egofree
Reply #9 Posted on: June 03, 2014, 02:44:19 PM
Contributor
Joined: Jun 2013
Posts: 601

View Profile Email
What about trying in Linux with the same NVIDIA driver revision (337.88) if possible (if it's out even).

When i first installed Linux, first i've downloaded manually the latest drivers from the Nvidia website, and i've spent hours to figure out how to install them, as i had error messages. In the end i 'managed' to start the installation, but it screwed my system !  :o  >:( , so i had to manually uninstall these bloody drivers with command lines in 'emergency mode'. Then i managed to install older drivers with package manager. To conclude, i will not risk to install manually the latest drivers. Perhaps in the future when i will install again a new Linux version.
« Last Edit: June 03, 2014, 02:54:55 PM by egofree » Logged
Offline (Unknown gender) Darkstar2
Reply #10 Posted on: June 03, 2014, 03:07:37 PM
Member
Joined: Jan 2014
Posts: 1238

View Profile Email
Fair enough,  so anyway my EXE will target windows platform anyway so it's fine.

I would like to get comments from TKG, (once he returns from his trip to the sun and moon :D) and Harri.  & Robert if he wants to.    I'm not even going to post a screenshot of the disaster the round 100, 1000 tip creates with my project, the scrolling background completely garbles and flickers like crazy (no lines, but entire image flickering and jumbled with garbled mess) and text all screwed up.  When used with text alone it seems ok, but that was an illusion.  The 0.01 offset so far works with everything in all modes, all fonts, all sizes.

So whilst they are busy figuring out an official fix and release it in 20 maybe 50 years from now, for anybody interested in how I made the fix happen in my project simply take a look at the EGM source, it's 1 simple function in the draw event:

d3d_set_projection_ortho(0.01,0,room_width,room_height,0);

In my case I will just modify the offset directly in the source CPP file and compile all my projects with that.

This until anybody else comes with a better idea that is works fully 100% not just partial and yields the same good results with everybody.  I'm aiming for at least AMD and NVIDIA good results on these.  Right now this is a band aid solution since ENIGMA is not going to get any major fixing anytime soon in this life cycle.   Some devs keep on bashing the fix idea, so come up with a better idea then or accept it as a temporary fix.  This is fucked up !  First I get given tons of offsets to play with and then it's out of the question and mentioned they would not use that method of fix. LOL !   Whilst the devs keep on inflating their egos and dreaming of 20 years from now when ENIGMA will draw fonts properly on all GPU types, I in the meantime will use a fix that works for me and everyone and does not have any adverse effects (proof is in the pudding so far!!!).

And yes in case some are wondering this flaw is only in OPENGL.

In DX9 the same project requires no fix and displays properly as it should.  I would have used DX9 but DX9 is broken too, GENIUS, whoever tested it did not think it was necessary to hit F4 and see if full screen works.  oh well, My C++ skill set is not up to par to  fix it and never will :D  So until then I have to use OPENGL........ :P


« Last Edit: June 03, 2014, 03:36:50 PM by Darkstar2 » Logged
Offline (Unknown gender) egofree
Reply #11 Posted on: June 03, 2014, 04:02:23 PM
Contributor
Joined: Jun 2013
Posts: 601

View Profile Email
I would have used DX9 but DX9 is broken too, GENIUS, whoever tested it did not think it was necessary to hit F4 and see if full screen works.  oh well, My C++ skill set is not up to par to  fix it and never will :D  So until then I have to use OPENGL........ :P

Well, sometimes OpenGl can be broken too !  :D For example, if you want to use in Enigma multiple views with OpenGl, it doesn't work. But it works in DX9 !
Logged
Offline (Unknown gender) TheExDeus
Reply #12 Posted on: June 03, 2014, 04:02:41 PM

Developer
Joined: Apr 2008
Posts: 1860

View Profile
Works for me too. Geforce 660Ti, Win8.1, driver 337.88. We need AMD people to test this. Also, we should make sure also no other graphical anomalies appear, like texture scrolling bug. In the example horizontal scroll looks fine. Is vertical scroll fine as well? And is there no 1 pixel boarder top/bottom of the screen? Because when I tried to fix an off-by-one error in rendering when I fixed one thing, another broke. So I ended up not fixing it. Maybe this will fix it as well. Mathematically this fix helps with rounding, but it's weird that only x needs to be changed. Would make more sense if both x and y be 0.01.

Quote
This until anybody else comes with a better idea that is works fully 100% not just partial and yields the same good results with everybody.  I'm aiming for at least AMD and NVIDIA good results on these.  Right now this is a band aid solution since ENIGMA is not going to get any major fixing anytime soon in this life cycle.   Some devs keep on bashing the fix idea, so come up with a better idea then or accept it as a temporary fix.  This is fucked up !  First I get given tons of offsets to play with and then it's out of the question and mentioned they would not use that method of fix. LOL !   Whilst the devs keep on inflating their egos and dreaming of 20 years from now when ENIGMA will draw fonts properly on all GPU types, I in the meantime will use a fix that works for me and everyone and does not have any adverse effects (proof is in the pudding so far!!!).
You keep being emotional like a girl on a period. You didn't even mention the d3d_set_projection_ortho(0.01,0,room_width,room_height,0) fix in the previous topic. So when exactly was the place when no one wanted that solution? And when did someone said that we won't apply a "band aid" solution? We, just like you, just acknowledge that quick hacks are not the best solutions, but we don't dismiss them. If it works, then it will be applied. ENIGMA has quick fixes in many places in the sourcecode already. So just chill the fuck out. What we DON'T want to apply is a fix that works for you, but breaks shit for others. That is what the previous topic was all about. We tried offsets, we tried rounding and both worked for some and not for others. And this experimentation is how these things get fixed. If you didn't have the patience to do so, then you could of just stopped. No reason to whine about it.

Quote
I would have used DX9 but DX9 is broken too, GENIUS, whoever tested it did not think it was necessary to hit F4 and see if full screen works.  oh well, My C++ skill set is not up to par to  fix it and never will :D  So until then I have to use OPENGL........ :P
We don't test everything. Most of the time only certain examples are tested to see if nothing backwards compatible breaks. In this case it's not even broken, it's just not implemented. The fact that it took 1.5 years for someone to report it kind of shows how little that "feature" was used. I for one, never use full screen. So I didn't notice. Probably is quite trivial to fix though.

edit: Was just thinking about the fix and fixing it for packed resources in .exe it should be easy, but external resources could be a pain. If someone doesn't know, the reason DX doesn't render anything after fullscreen or after alt+tab, is because it has destroyed the context. Basically it has disconnected the device (GPU) and deleted all resources. Which means you have to reinit the device and reload all resources. Reloading stuff inside the .exe shouldn't be hard, but loading external resources will be harder, as you load them yourself, and we don't store things like paths or anything else. Even if we did store paths, there is a possibility the resource doesn't even exist anymore (if it was extracted from a zip and put in temporary location, for example). So for external resources it's possible we will have to push this onto the user. Or store a copy in RAM all the time. In this regard GL is a lot better. It also explains why sometimes alt+tab outside a game takes freaking 25 seconds. While in OGL games it is instantaneous. That is why you should use GL on Windows as well. Some game engines are becoming exclusively GL, like id Tech engine (Doom3, Rage, Wolfeinsten). Source actually works faster on Windows when running on GL (http://blogs.valvesoftware.com/linux/faster-zombies/).
« Last Edit: June 03, 2014, 04:25:56 PM by TheExDeus » Logged
Offline (Unknown gender) The 11th plague of Egypt
Reply #13 Posted on: June 03, 2014, 04:17:45 PM
Member
Joined: Dec 2009
Posts: 274

View Profile
For me it's the same.
Which is strange, since my card has the ability to come up with some strange artifacts for some games.
I have a ATI Radeon HD 4570 (an old mobile GPU) on Windows 7 x64.

Thanks, could you be more specific ? Are you seeing the equivalent of image 1 (bad display) or image 2 (good display) - Also the scrolling background, is it displayed properly ? no flickering or lines, etc ?
Good on both, I used the normal number keys and not the numpad.
No flickering or other strange things.

BTW why are you using OpenGL 1.1? That's old!
Logged
Offline (Unknown gender) Darkstar2
Reply #14 Posted on: June 03, 2014, 04:27:50 PM
Member
Joined: Jan 2014
Posts: 1238

View Profile Email
Well, sometimes OpenGl can be broken too !  :D For example, if you want to use in Enigma multiple views with OpenGl, it doesn't work. But it works in DX9 !

Exactly, but right now until the DX9 screen issue is fixed, using DX9 is not an option.  Even windows mode, if you move the window the entire game area goes blank.  Was this always a problem in ENIGMA (the DX9 issue?)  I don't remember it existing when I first used ENIGMA or perhaps did not pay much attention to it.

Logged
Pages: 1 2 3 »
  Print