Since the sample Intel driver hasn't been ported to Windows, this nulldrv is
being used to bootstrap Windows support. It can also provide a hint to new
IHV's for how to set the magic number.
bug #12925
header version: r29511
Remove separate scissor enable and scissor count. Scissor always
enabled and must always provide scissor rect for every viewport.
Several adjustments were made, including:
1) Add some MS Windows-related information. For example, the loader is
"XGL.dll" on Windows, and "libSGL.so" on Linux. Also, the separator
character is given, for each OS, for the PATH environment variables.
2) Add some addition information about dispatching.
3) Add example code for setting the magic value in the ICD.
4) Fix the numbering that looked fine in the "mardown" website, but not on
GitHub.
5) Try to improve grammar, punctuation, etc.
The intention is for Linux developers to catch more problems (real or
annoyance) before porting to Windows.
The new warnings are:
-Wpointer-arith
-Wsign-compare
These are not used for the Intel sample driver (mostly because the Intel
compiler from Mesa3D generates lots of these warnings, which code we don't want
to modify), nor for the tests.
Not sure how this affects Glave on Linux.
The local chain copy had embedded pointers into the original chain. So
multiple replays/remaps weren't working. Simplify code to just save a queue
of the actaul objects that need to be remapped and restore them after making
the call to xglUpdateDescriptors().
This is a hopefully-temporary solution to prevent some of the problems of
people breaking the Windows build while developing on Linux (or vice-versa).
This uses macros of the names of Linux/Windows-specific functions in order to
catch people who use those functions directly, instead of using the
platform-compatibility-layer functions.
In order to avoid problems with the layers #include'ing "loader_platform.h"
before they #include system files (which can mess them up), I #include
"loader_platform.h" twice. The 2nd time, it #define's the hopefully-temporary
macros.
Note: For some reason, we can't #define LoadLibrary(). It generates warnings
on Windows.
We wanted a more explicit way to determine if the driver
ICD being loaded is providing compatible objects. To do
that we check for a magic dword value at the beginning
of the object. Non-compliant ICDs will assert in the loader
or the loader's dispatch functions if an object does
not have the correct value.
Dispatch checks are debug only.
The STATIC_INLINE macro is now in "xglPlatform.h". It is also now being used
by the *_loader_magic_value() functions. This allows it to be compiled on
Windows.
Properly handle tracing case of pDataSize == don't care as input when
pData == NULL.
Also fix bug on replay about not warning in cases where pData == NULL and
*pDataSize is a mismatch.
This causes a problem when no ICD is found. The function's "res" variable is
returned despite never being intialized. For now, I chose to return
XGL_ERROR_INCOMPATIBLE_DRIVER.
Add -fno-strict-aliasing -fno-builtin-memcmp - Both of these are
used by the Mesa driver, and without the first one, we hang? in
link_shaders on release builds
Move cube's LoadTexture out of an assert so it isn't skipped in
release builds