Hi everyone,
Okay, midnight / early morning of March 30th / March 31st, 2016, I finally
released the long awaited OpenChrome Version 0.4.0.
I replaced the old README file with a newly written one (actually, it was
mostly done about 2 weeks ago) and changed the version number of the
compilation script to 0.4.0.
If you check the version via Xorg.0.log located at /var/log, you will see that.
I also assigned a new tag for OpenChrome Version 0.4.0 which follows the
previous developer convention.
For me personally, this is the first time I have been involved in an open
source software development project, and with almost no guidance given by
developers who worked on OpenChrome previously (Benno Schulenberg helped me on
how to use Git from time to time, but I was probably being scolded by him more
often than not for not knowing how to use Git effectively. Benno, I do not take
it personally.), I pretty much had to figure out everything on my own.
With a background in digital hardware design engineering (Xilinx FPGA design
specialization with an emphasis on memory and I/O subsystem architecture,
design, and verification with technologies like DDRx SDRAM, PCI, and PCI
Express.), learning the open source software development process was a new
challenge to me.
I got interested in developing VIA Technologies IGP device driver mainly
because I started collecting abandoned computers starting around 2010 and I
live within a driving distance of WeirdStuff Warehouse (Sunnyvale, California,
United States of America) where I can obtain used mainboards.
VIA releasing some 2D / 3D hardware programming documents between 2008 to 2011
(This was well chronicled by Michael Larabel of Phononix. More on him in a
minute.) was a definite factor in deciding to work on OpenChrome.
While many second and third tier graphics chip vendor dropped out of the PC
graphics business between early to mid year 2000s not being able to compete
with NVIDIA, ATI Technologies (now AMD), and Intel, one way or another, VIA
continued to release chipsets with Chrome family IGP.
Excluding the Big 3 of x86 platform graphics, I would imagine that VIA IGP
still has the most active usage share of x86 platform graphics.
Of course, I know that its active usage share is way less than 1% of all x86
platform graphics, but at least within that super small minority group, VIA IGP
probably has the most users still actively using it.
Perhaps, the bigger reason why I got involved in this project, is mainly due to
the dilapidated state of many open source graphics device drivers, particularly
ones that are not actively developed by financially resourceful corporations
like AMD and Intel.
While I am sure there are some who do not appreciate my criticisms of open
source software, the device driver stability and reliability is still far below
of that of Microsoft Windows level, and I honestly have not been very happy
with this situation.
So I wanted to do something about it, hence, I got involved in the OpenChrome
project.
There are other reasons why I got involved in this project other than the
reasons I have already written here, but I probably should not get into that
since I can easily get blacklisted by the "industry" located in what the media
commonly calls "Silicon Valley."
Personally, I am not a huge fan of VIA Technologies (I do not hate them,
either.), and if the management of VIA were more competent between year 2004 to
year 2010 or so, perhaps, they might have still been somewhat relevant as a
comprehensive silicon solution vendor (i.e., a vendor that "owns" capable
microprocessor cores, DirectX 9 / 10 level graphics cores, and peripheral
subsystem) even today.
However, they have been in severe decline as a firm for the past 8 years or so,
and I will not be surprised if they disappear all together within the next 5 to
10 years since they have been losing money for the past 9 years.
I am not trying to trash VIA here, but the reality cannot be denied.
I am sure someone who works for VIA Technologies will likely read this posting
at point (and not like it, I suppose), and if they wanted to reach out to the
OpenChrome project, at least I will be willing to go talk to them over at their
Fremont, California office since I live within 20 miles (30 km) of their U.S.
design center.
Looking forward, due to the end of what is called Moore's Law, it is my
view as a digital hardware engineering background person that what people will
consider "trailing edge" hardware or even "garbage" hardware will be used much
longer than people would have historically expected.
This is because the hardware capacities and capabilities have already reached a
point where other than hardcore 3D gaming, physics simulations, "Machine
Learning" stuff (this used to be called "AI"), and 50+ million gate ASIC design
(I am a digital hardware engineering person, after all.), the computers people
own are quite adequate for mundane everyday use.
Not to mention, the cost of developing an ASIC (Application Specific Integrated
Circuit) has got to the point where a minimum of 1 billion USD or greater sales
is typically necessary to undertake it (at 28 nm process generation or below),
and even in Silicon Valley, many companies have been downsizing hardware
engineering positions (There are more dark side to what is going on in this
field than what I can write here, but I will digress since I do not want to be
blacklisted by the "industry.") for the past 10+ years.
Contrary to what journalists like Michael Larabel of Phoronix might naively
think (I had to avenge for writing stuff like "Kevin working on the
xf86-video-openchrome driver can't even figure out how to make use of the
OpenChrome KMS driver so there's nothing happening on that front . . .")
electronics will likely not evolve like the way it did throughout 1980s, 1990s,
and 2000s, moving forward (Michael, the "avenge" part is a joke. Don't take it
too seriously!).
In particular, CPU performance (x86 and ARM) is pretty much saturated and GPU
performance is already hampered by memory bandwidth limitation.
Theoretically, technologies like HBM2 (High Bandwidth Memory 2) can break the
memory bandwidth limitation of GPU, but I personally have doubts that if it
ever can come down to the mainstream price point of the market.
More importantly, heat is becoming a huge problem for both CPU and GPU, and
that is one of the biggest limiter of performance these days.
If I were to summarize, physics and economics are becoming the limiting factors
of computer / electronics industry, hence, the evolution of the hardware will
be much slower moving forward.
I am not sure which one will stop the process geometry progression (i.e., 16 /
14 nm to 10 nm to 7 nm and beyond), but short of a huge breakthrough, these
twin factors will stop it in the next 10 to 15 years.
What this means is that more than ever, it is important to develop and maintain
existing computer hardware that have been manufactured, and to me, fixing and
developing OpenChrome fits within this trend I have articulated here.
In the computer / electronics industry, developers doing maintenance / trailing
edge work is often treated like a low caste person (Michael Larabel definitely
has something of an editorial bias against people using graphics hardware other
than the Big 3 of x86 platform graphics I have discussed.), but based on the
state of open source software graphics device driver I have seen in the past
few years, I feel like someone has to do the unappreciated, dirty, and low
caste people work, and I guess I decided to specialize in this unappreciated
field.
In addition to OpenChrome, I personally plan to work on rehabilitating and
retrofitting many long forgotten graphics device drivers for open source
software, moving forward.
However, OpenChrome will likely get the most of my attention since it is the
most developed and most capable outside of the Big 3 of x86 platform graphics.
Obviously, I am not getting out of OpenChrome development, and in fact, I am
just getting started, in terms of the actual development.
Based on my own testing and many other bug reports users of OpenChrome have
filed, there are about a dozen (12) serious bugs that remain in OpenChrome.
I plan to fix them one by one moving forward, and in general, when one serious
bug is fixed, the patch level will go up (i.e., Version 0.4.0 to Version 0.4.1).
The good news is that patch level will go up much faster than it did in the
past (OpenChrome stayed at Version 0.3.3 for almost 3 years . . .), so there
will be much less confusion moving forward.
I will start looking into adding support for extended screen since I do want
this myself for my 2 VIA IGP based laptop computers.
In addition to this, DVI related issues have to be fixed since I had to disable
DVI support for those with DVI coming from an external transmitter.
Just for the record, OpenChrome Version 0.4.0 had to come out at this
timing because the previous version (Version 0.3.3) had a bug that made it
inoperable with some hardware not "known" by this particular OpenChrome, and
pretty much all Linux / BSD distributions still use this buggy version.
I personally wanted to fix a few more bugs, but I had to do my best to turn it
into a releasable condition, so that Version 0.3.3 can be retired for good.
If the bug you personally reported has not been fixed yet, I will start working
on it in the near future, so please be patient.
I probably should not get into the UniChrome / OpenChrome development
schism from year 2005 or so (I was not involved in the controversy.), but in
some ways, OpenChrome Version 0.4.0 settles the matter, at least
philosophically.
I removed most legacy mode setting features like VBE and a different
alternative mode setting option from the code completely.
The support over VBE mode setting was a huge reason, apparently, that caused
the schism.
VBE mode setting should have been removed from the code around 2010 or so after
VIA finally release long awaited hardware programming documents, but developer
interest declined in the past 2 years, and probably as a result, it never
happened until now.
In some ways, UniChrome project's views on mode setting was finally
incorporated into OpenChrome starting with Version 0.4.0.
I hope this version settles the bitterness it generated back then.
As for KMS and TTM support Michael Larabel keeps beating me and OpenChrome
up, Frank Huang and I have started the work on the new DRM module, and have
recently made a patch fixing a small error message it was leaving with dmesg if
Chrome9 based IGP was used.
I finally was able to compile and install the new DRM module supporting KMS and
TTM, but I will have to install it with a newer OS than Lubuntu 12.04 for
further testing.
At this point, the new DRM modules can be compiled only for Linux 3.18 or later
kernel since James Simmons appeared to have been using the latest TTM APIs (I
tend to be against using the latest API, but that's my opinion.).
Frank has told me that HDMI is not currently working even though it was
supposedly working 2 years ago when James was working on it.
Frank will soon obtain commit privilege, so moving forward, he will become the
other project maintainer.
If there are other people who want to be involved in the development side of
the project, I definitely will welcome that.
Finally, this message got a little too long, and I will try not to post
such a long message in the future (I guess there is a thing called "blog" to
post an essay like this one I did here.), but I hope the new version can get
people with VIA hardware to resurrect their long forgotten hardware.
Regards,
Kevin Brace
OpenChrome Project Maintainer
_______________________________________________
Openchrome-users mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/openchrome-users
Main page: http://www.openchrome.org
Wiki: http://www.openchrome.org/trac/wiki/TOC