Sasha Szpakowski
f6cdbdc868
Merge branch 'main' into 12.0-development
2022-12-31 22:46:34 -04:00
Sasha Szpakowski
c823dbca96
Update copyright year for 2023
2022-12-31 22:25:49 -04:00
Sasha Szpakowski
6599697835
opengl: Fix love_PixelCoord and love_ScreenSize in shaders.
...
Fixes #1866 .
2022-11-25 23:27:04 -04:00
slime
99ad576668
metal: implement storage texture support for shaders.
...
Fixes #1783
2022-10-10 13:47:17 -03:00
niki
f4c38eb00a
Revert "vulkan: use push constants for builtin uniforms"
...
This reverts commit 47e3fc85d2 .
2022-09-15 15:55:47 +02:00
niki
47e3fc85d2
vulkan: use push constants for builtin uniforms
...
when available
2022-09-15 15:17:06 +02:00
niki
a93d153792
vulkan: adjust code styling
2022-09-10 17:40:46 +02:00
niki
4047cc9d3a
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-08-28 03:43:08 +02:00
niki
18221beb25
vulkan: fix canvas rendering on android
2022-08-27 20:58:17 +02:00
slime
db1bf4707c
Workaround for built-in shaders on some ES2 devices which don't support highp in pixel shaders.
2022-08-25 19:25:01 -03:00
slime
96820749ad
Potential optimization for built-in uniform access in shader code.
...
Assigning to and accessing extra shader variables can increase VGPR / wave-variant register usage in shaders, which is often a limiting factor for performance in non-trivial shaders. Accessing the uniforms directly should bypass that.
2022-08-25 18:17:31 -03:00
niki
00974b5820
vulkan: move shader compilation into Shader
2022-07-18 22:28:41 +02:00
niki
2bf7c35220
use constant color for VertexColor
2022-06-14 23:30:51 +02:00
niki
1111aa3f42
(almost) integrate default löve shaders for vulkan
2022-06-14 18:18:23 +02:00
niki
c996860602
Use löve's uniform data object for vulkan shader
2022-06-13 16:50:12 +02:00
niki
acf0474cc8
Implement drawing very basic textures
...
With this commit you can draw very simple textures.
The following code will showcase it:
```lua
function love.run()
local data = love.image.newImageData(40, 40)
for i = 0,39 do
for j=0,39 do
if i <= 20 then
if j <= 20 then
data:setPixel(i, j, 1, 0, 0, 1)
else
data:setPixel(i, j, 0, 1, 0, 1)
end
else
if j <= 20 then
data:setPixel(i, j, 0, 0, 1, 1)
else
data:setPixel(i, j, 1, 1, 1, 1)
end
end
end
end
local texture
texture = love.graphics.newTexture(data)
return function()
love.event.pump()
for name, a,b,c,d,e,f in love.event.poll() do
if name == "quit" then
if not love.quit or not love.quit() then
return a or 0
end
end
love.handlers[name](a,b,c,d,e,f)
end
love.graphics.origin()
love.graphics.clear()
love.graphics.draw(texture, 50, 500)
love.graphics.present()
end
end
```
2022-06-11 20:33:44 +02:00
niki
c16c07780f
use default texture when rendering primitives
2022-05-08 22:44:32 +02:00
niki
75a6bc9b5d
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-05-06 16:46:55 +02:00
niki
158052c52c
implement basic per frame uniform variables
2022-03-22 14:31:50 +01:00
niki
157c8f8a20
include custom vulkan shader in love source
2022-03-21 15:26:27 +01:00
Alex Szpakowski
0fa00e0bdc
love.graphics.newShader: add a compile options table parameter.
...
The only field currently read from the table is 'defines', which can contain either an array of define names, or name-value pairs.
For example: newShader(file, {defines={"MYFEATURE_ENABLED", MYSETTING=1}})
Fixes #1577
2022-02-20 12:23:41 -04:00
niki
197dfb9738
start implementing vulkan Shader type
2022-02-06 22:56:24 +01:00
Alex Szpakowski
d51e012812
Merge branch '12.0-development' into metal
2022-01-05 21:12:22 -04:00
Alex Szpakowski
7f3538d2ba
Merge branch 'main' into 12.0-development
2022-01-05 21:10:27 -04:00
Alex Szpakowski
91cb845f31
#pragma language glsl4 in shaders maps to GLES 3.2 instead of 3.1.
2022-01-02 14:02:55 -04:00
Alex Szpakowski
f88eecf482
Allow texel buffers in OpenGL ES, when supported by the system.
2022-01-01 18:06:50 -04:00
Alex Szpakowski
e602f08c24
metal: support constant initializer values for local uniforms.
2022-01-01 15:28:42 -04:00
Alex Szpakowski
8e7fd10b6f
Update copyright year for 2022
2021-12-31 18:33:40 -04:00
Alex Szpakowski
7a910484c3
Fix compilation
2021-12-24 16:45:23 -04:00
Alex Szpakowski
3d8117ccbb
Merge branch '12.0-development' into metal
2021-12-24 15:35:18 -04:00
Alex Szpakowski
e63025b74f
Merge branch '12.0-development' into metal
2021-12-24 15:34:05 -04:00
Alex Szpakowski
fb77e64f61
Allow plain arrays of a base type as shader buffer block declarations.
2021-11-06 16:42:41 -03:00
Alex Szpakowski
63e3bd1823
use 'thread' and 'threadgroup' terminology in compute shader code.
...
Also fix compute shaders including some rendering-specific code.
2021-08-14 20:42:46 -03:00
Alex Szpakowski
a551fcd492
Initial support for writing to textures in compute shaders.
2021-08-13 14:43:03 -03:00
Alex Szpakowski
cffd485976
Allow rendering to integer textures.
2021-08-12 17:43:33 -03:00
Alex Szpakowski
48b3a4e860
Initial support for integer format textures.
...
They can't be rendered to and ImageData can't use the formats, for now.
2021-08-12 16:38:54 -03:00
Alex Szpakowski
4caeb27047
Slightly less heavy-handed compute memory barrier implementation.
...
Also validate whether there are any unbound writable resources when dispatching compute shader work.
2021-08-11 18:41:38 -03:00
Alex Szpakowski
92d0d1d60f
love.graphics.validateShader no longer errors if the system doesn't support the shader
2021-07-18 14:09:28 -03:00
Alex Szpakowski
00494ec3b5
Error if image load/store is used since it's not supported yet.
2021-07-18 13:38:10 -03:00
Alex Szpakowski
b644d00bf7
Add a more specific error message when compute shaders aren't supported
...
It already correctly errored, but the message was generic enough (GLSL 4 support) that it might be confusing.
2021-07-18 13:18:43 -03:00
Alex Szpakowski
80f051b97d
Merge pull request #1715 from bjornbytes/compute-shaders
...
Compute Shaders
2021-07-18 13:09:48 -03:00
bjorn
b28e61d00d
Shader:getLocalThreadgroupSize;
2021-07-17 19:54:54 -07:00
bjorn
085ba2cb6e
Add compute ShaderStage;
2021-07-17 19:46:05 -07:00
bjorn
a1c79c45d8
Shader:hasStage;
2021-07-17 19:38:46 -07:00
Alex Szpakowski
433190d1df
Merge branch 'master' into 12.0-development
2021-06-06 11:43:54 -03:00
Alex Szpakowski
14cda7818f
Rename internal enum
2021-04-07 20:43:22 -03:00
Alex Szpakowski
21f5ba86d3
Merge branch 'master' into 12.0-development
2021-04-07 20:33:44 -03:00
Alex Szpakowski
f89aabb0bb
Update copyright year for 2021
2021-04-04 16:14:45 -03:00
Alex Szpakowski
5fa570b9a6
metal: initial texel buffer Shader:send implementation
2021-03-31 23:02:36 -03:00
Alex Szpakowski
7eb3d4343a
Move some shader binding validation code out of the opengl backend
2021-03-30 19:28:42 -03:00