Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/haasn/libplacebo
Official mirror of libplacebo
https://github.com/haasn/libplacebo
Using void* is either legal or not, I can't tell based on the C99 spec.
But using the actual poi...
1fed9c219cc7d27db3d43d967345c6e1330f2c3c authored over 6 years ago by Niklas Haas <[email protected]>
In theory, we could also add instance extensions, but this makes it more
complicated when using ...
Tiny performance gain, but also makes synchronization less of an issue
and prevents some pipelin...
Only needed on android. Fixes #34.
c8cd30bd7b5bdf6cb487814cff39ae5408728ea9 authored over 6 years ago by Niklas Haas <[email protected]>cc0638cb18b4d3b39aa3a9b16fbed0c1578efa35 authored almost 7 years ago by Niklas Haas <[email protected]>
Instead of inferring these from the image size, infer them from the rect
to be transferred. This...
In cases where the stride exceeds the rect being transferred, the
existing rules could also incl...
MoltenVK does not implement VkEvent at the moment, but when MoltenVK
supports VkEvents they shou...
This should still catch the most obvious cases where this grossly
exceeds the size, but is less ...
Missing check for NULL return here.
4175aa0b69606abaf7885a9cbf9968aa5d77ce26 authored almost 7 years ago by Niklas Haas <[email protected]>
Otherwise, emulated format upload results in an error (fortunately, the
libplacebo assert catche...
Give them explicit size information and make them unsigned where it
matters. This solves an issu...
Do this right away instead of leaving them unknown so we persist
information about e.g. the src_...
The one introduced by the previous commit. Gets rid of some code
duplication.
This is useful to solve an issue I had with the renderer
d8f729ada2267b7cfeab09b4ab10ec8f52507111 authored almost 7 years ago by Niklas Haas <[email protected]>travis fails otherwise
b1614736e74eba16526fb3abfca6ce7fa84de687 authored almost 7 years ago by Niklas Haas <[email protected]>
When repeating the same vertex info a bunch of times (which happens quite
often since the crop i...
Fixes compilation issues on windows, and also moves some stuff to the
global file and also makes...
Suppresses a warning on windows.
c1c6283da3f33d8c19ac569bf730808ec31bbacb authored almost 7 years ago by Niklas Haas <[email protected]>Thanks to @ePirat and @rossy for providing tips and testing.
7544711482f428017b54e02468e9fa93a331d72b authored almost 7 years ago by Niklas Haas <[email protected]>
Creating and updating the vertex buffer itself can trigger flushing
commands, so don't do it fro...
The API usage for pl_shader_deband was out-of-date
091e2400c640a55e62403bfdf9228e4de32001da authored almost 7 years ago by Niklas Haas <[email protected]>
This is normally not a very realistic circumstance, but it can happen
when doing HDR-in-SDR simu...
Good in theory, bad in practice. Clipping ends up retaining more of the
image. If anything, we s...
This makes sure debanding etc. doesn't blow up on the first pass that
touches an image, and it a...
Separate the decisions about what type of sampler to use from the logic
for actually applying th...
Debanding can now perform implicit bilinear scaling as well. We make use
of this to skip the ind...
This is needed to correctly pull-up the signal range. While it may seem
sort of redundant on the...
04ed03fd6b2c0e99fc3605c0ac846be142ab5233 authored almost 7 years ago by Niklas Haas <[email protected]>
This was claimed to default to 63, but it actually only defaulted to 20
in some cases.
VLC has these as well
fa881acdb2433beaa717435a2bd32dfe06f7bf2a authored almost 7 years ago by Niklas Haas <[email protected]>
When creating the swapchain. This was previously not explicitly checked,
just assumed.
So users can actually pl_tex_clear them, which is a pretty important
operation
This is much more convenient when the plane is different every time, but
you still want to re-us...
This is normally not emitted because optimization realizes that it's
impossible for the switch()...
For sanity
2eaa7946c99fdde45befdc387e6c296c215d9a09 authored almost 7 years ago by Niklas Haas <[email protected]>
The stupid const pointer cast obscured the fact that the pointer type
had changed in the meantime.
7fc37076347c8797550aa361b83d0d47d82e9626 authored almost 7 years ago by Niklas Haas <[email protected]>
Since HDR TRC support in both hardware and software is flaky at best, we
can easily enable a sor...
The hard-coded limit of 1.01 doesn't make sense for HDR output
colorspaces. So take into account...
Now we fully respect the BT.2100 specification in both directions,
resulting in colorimetrically...
Right now, the desaturation is always based on an absolute scale. But
this doesn't make sense wh...
These platforms don't support mix() with bvec, so we have to fall back
to casting to vecN instea...
6c336a1df4bdccac653eee73622f268672eb2a60 authored almost 7 years ago by Niklas Haas <[email protected]>
Add a versioned clause for easy versioning (via symlinks), add multilib
support, and add shaderc...
These only get caught when compiling with -O2, which I normally don't
do. Two of these are actua...
1. Switch from size_t to VkDeviceSize for buffer offsets/sizes, since
this is guaranteed to b...
An off-by-one in the check caused this to emit `vec1()` in the
1-component case, which is illega...
7540ad42aebdd00584bde413ebae7a8694a3330e authored almost 7 years ago by Niklas Haas <[email protected]>
Prevents annoying eye-adaptation like effects on scene changes.
This allows us to bump up the d...
579c8c0146ae20a5c0086883023840d74a90359a authored almost 7 years ago by Niklas Haas <[email protected]>
Instead of dividing out the number of workgroups per frame when
calculating the new signal peak,...
This is designed to avoid queueing up massive amounts of work with no
forward progress, which co...
This required some pretty complicated logic, but I tested it and it
seems to be working. Basical...
The sanitization/checking logic failed on compute shaders without any
viewport/scissors set. It ...
The assertion fails in this case, since *buf is NULL.
687ce9544eedabda2edfad30c5c5d8b8f63244a5 authored almost 7 years ago by Niklas Haas <[email protected]>
This allows us to bypass the target framebuffer simulation and dispatch
generic compute shaders ...
If all 8 buffers are in use, just block for availability
b873935481e5f1c316dc01d5666f95eae288bcf2 authored almost 7 years ago by Niklas Haas <[email protected]>
This avoids nasty infinite loops that submit an infinite number of
commands over and over again....
We fixed the *rc after checking the tex transfer size, which was a
computation based on the *rc....
This includes both (readonly) uniform texel buffers and (readwrite)
storage texel buffers.
Need...
bbef9ae89103d91a47dbb40a2c7087ec3497a176 authored almost 7 years ago by Niklas Haas <[email protected]>Exactly what it says on the tin.
47eae8c949d7426a1493c83a8e45cb7294754d72 authored almost 7 years ago by Niklas Haas <[email protected]>
textureGatherOffset requires ImageGatherExtended, and the use of some
storage formats might requ...
Also fix an issue where we accidentally divided by (frames + 1) instead
of by (frames).
Again, no reason to reinvent the wheel.
86f03aff92c908e85109209fe17a5681315b3496 authored almost 7 years ago by Niklas Haas <[email protected]>Since we use this more aggressively now
03b818d7cd787d73533b3842363163f154cd2155 authored almost 7 years ago by Niklas Haas <[email protected]>No need to duplicate logic. I forgot this helper existed already.
db5a85905054d2ebf8bba731ebf402c6bd340916 authored almost 7 years ago by Niklas Haas <[email protected]>
This is a very major rewrite operation, but all of the actual logic is
unaffected. The change is...
The bulk of the src_rect application is moved from the main scaling pass
to the pass_read_image ...
Most of the shaders can run fine at any size, i.e. they can also do
implicit upscaling. Not real...
Avoid exact float computations wherever possible.
83888baa179fb7cd790b6ffcc1de886fd91a1d8b authored almost 7 years ago by Niklas Haas <[email protected]>
Specifically, modifying the ra_tex directly does not invalidate the
texture cache - and is there...
Closes #15
The most annoying thing about this is that I decided to try and
implement emulating ...
Make sure these are constrained to the target dimensions, and silently
drop passes with invalid ...
This could be done slightly better, but it will do for now.
Closes #25
707a43e574749230946f07775731d70f96e2131b authored almost 7 years ago by Niklas Haas <[email protected]>Using va_arg on any pointer type other than void* is undefined behavior.
2ad7695fc722ba05070e532f7abc22b61d38586e authored almost 7 years ago by Niklas Haas <[email protected]>
This function can be easy to overlook, despite its usefulness for these
fields.
Point out that this is referring to the ITU-R BT standards, and also
replace the / by a + to mor...
Provided mainly for my own convenience, so I can test JPEGs and stuff
more easily. But also impo...
This works around the fact that subsampling oddly sized images results
in fractionally sized chr...
This is something that I had suspected of being an issue when I
implemented the overlay, but it ...
The hard-coded "in%d" caused a conflict when trying to polar sample
multiple planes in the same ...
SDL2 on Windows redefines main to SDL_main in order to insert platform-
specific initialization ...
5eeeb93790d0375bc8ef6338d70b85b81eb8610a authored almost 7 years ago by James Ross-Gowan <[email protected]>
ffsll() is available in glibc and BSD, but it's non portable and
unavailable on Windows. Use __b...
It seems like the range of both of these functions is [0, RAND_MAX].
rand() is pretty low-qualit...
Do this by explicitly clearing LC_NUMERIC before calling into
libshaderc. I'm not entirely sure ...
This allows us to make blazing fast release builds without editing the
source.
To keep things simple, these only support %d, %f and %s, with no length
modifiers. %d is assumed...
Instead of using shitty platform-specific hacks to get a
locale-invariant printf, we can just us...
456dbedb2ab14bad6d69fb1b6f45685ddc70eeaf authored almost 7 years ago by Niklas Haas <[email protected]>
Just because
a33a724e886e183b7fcd6e1b92b83c74a767584b authored almost 7 years ago by Niklas Haas <[email protected]>Partially a demonstration of the API, but mostly so I can test the thing
Vulkan logo is public ...
9f7930d63d148623f734b353efa18f6f44070bfd authored almost 7 years ago by Niklas Haas <[email protected]>
Image overlays are not yet supported. I changed the API around a bit
again, since I realized tha...
8103465d0d5df5aafe3db88525a95637c3f66c40 authored almost 7 years ago by Niklas Haas <[email protected]>
We forgot to set this to _IGNORED for buffers. However, the spec requires it.
d5594309f0bf49a80a877e8fe9de62236844f61b authored almost 7 years ago by Niklas Haas <[email protected]>
I also made some RA changes for convenience, so we can pass around the
blending configuration as...
This completes some of the work towards #15. The actual rendering of the
OSDs, however, is curre...
This feature is unimplemented, so tag it as such
ef631beb07fc46861f644215afc8c9721f5a8efc authored almost 7 years ago by Niklas Haas <[email protected]>As suggested by @tdaede
58d7c391dd07f086805a07e3ea6f2840cc3b481f authored almost 7 years ago by Niklas Haas <[email protected]>