Those two always come in pairs so lets do it in one commit. This
doesn't yet support evaluating fields as it's not yet needed and would
require setting up callbacks from the interpreter.
Co-authored-by: RatcheT2497 <[email protected]>
Fixes the issue of the test using braced parameter expansion, which is
not part of Shell's syntax, and correctaly sets up the test directory,
ensuring its path is fully resolved to avoid issues on macOS.
We already use 8-bytes types for the statvfs syscall, so this change
allows filesystems that support massive sizes to be able to report them
to userspace without being truncated.
The rest of the plumbing already used 64-bits types, making
FileSystemSpecificOption silently truncate the arguments.
With this patch, we can now create RAMFS filesystems with a size above
4 GiB.
For the moment, this only considers the size of files' content without
counting the inodes' cost. While being imprecise, this should already
give a pretty good estimate of the RAM usage caused by these
filesystems.
The value for LOGICAL_BLOCK_SIZE is quite arbitrary as the filesystem
doesn't have blocks, so it's only used as a unit (counting in KiB
instead of bytes).
For the moment, the default maximum size is set to zero (disabled), so
no limits are enforced, it just reports the number of used blocks.
When using the default iterator, the region tree is traversed in
ascending order. This mean that as soon as we find a region that is
above the tested range, we can safely exit the loop.
This was a major bottleneck in test-js, with this patch the runtime goes
from 6.761s to 4.680 (using a best-of-five).
This a simple skeleton for a non recursive AML parser + interpreter.
For now it support very little stuff, only a couple of opcodes but that
is enough to load a very very simple AML table.
Co-authored-by: RatcheT2497 <[email protected]>
Proxy textures don't have any image data. They can be used to determine
if a given texture configuration is supported by the implementation.
To support proxy textures in gl_tex_image_2d, we need to tweak the error
handling, since proxy textures don't report an error for unsupported
dimensions:
GL spec 1.5, 3.8.11 Texture State and Proxy State:
"When TexImage3D is executed with target specified as PROXY_TEXTURE_3D,
the three-dimensional proxy state values of the specified
level-of-detail are recomputed and updated. If the image array would
not be supported by TexImage3D called with target set to TEXTURE_3D,
no error is generated, but the proxy width, height, depth,
border width, and component resolutions are set to zero."
(The same also applies to TexImage2D.)
GL spec 1.5, 3.8.11 Texture State and Proxy State:
"Each initial texture array is null (zero width, height, and depth,
zero border width, internal format 1, with the compressed flag
set to FALSE, a zero compressed size, and zero-sized components)."
GL spec 1.5, 3.8.1 Texture Image Specification:
"An image with zero width, height, or depth indicates the null texture."
Previously, retrieving the texture size for an uninitialized texture
would have resulted in a crash. Since Texture2D initially has a null
device image and device images are not allowed to be 0x0 (GPU::Image
VERIFYs that), represent 0x0 textures by having a null device image.