On 9/30/20 9:16 AM, Henri Verbeet wrote:
On Wed, 30 Sep 2020 at 00:45, Zebediah Figura zfigura@codeweavers.com wrote:
diff --git a/tests/shader_runner_d3d12.c b/tests/shader_runner_d3d12.c new file mode 100644 index 00000000..e9a7387b --- /dev/null +++ b/tests/shader_runner_d3d12.c @@ -0,0 +1,254 @@ +/*
- Copyright © 2010 Intel Corporation
- Copyright © 2020 Zebediah Figura for CodeWeavers
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Software"),
- to deal in the Software without restriction, including without limitation
- the rights to use, copy, modify, merge, publish, distribute, sublicense,
- and/or sell copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice (including the next
- paragraph) shall be included in all copies or substantial portions of the
- Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
- */
I think we'd want this to be under the regular vkd3d license. (See also the gears and triangle demos for other places where we incorporate code under a different but compatible license.)
Sure; I wasn't sure and decided to play it safe...
case STATE_SHADER_PIXEL:
if (!shader_source)
{
shader_source = strdup(line);
}
else
{
shader_source = realloc(shader_source, strlen(shader_source) + strlen(line) + 1);
strcat(shader_source, line);
This isn't terribly efficient. (Both the strcat() after strlen(), and the realloc() strategy.) It probably doesn't really matter in practice, but we wouldn't want to set any bad examples.
I guess you're proposing to instead use something like array_reserve(), and e.g.
len = strlen(line); ... memcpy(shader_source + source_len, line, len);
Both of which struck me as extra complexity for not much reason, but I don't care too much...