Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac drivers seem unable to use texel fetch offsets >8. #393

Merged
merged 1 commit into from Sep 7, 2016
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Mac drivers seem unable to use texel fetch offsets >8.

  • Loading branch information
gw3583 committed Sep 7, 2016
commit 42db84b1b63ff362ac3ef9a81dded78eff09b17b
@@ -50,24 +50,29 @@ layout(std140) uniform Tiles {
Layer fetch_layer(int index) {
Layer layer;

ivec2 uv = ivec2(0, index);

layer.transform[0] = texelFetchOffset(sLayers, uv, 0, ivec2(0, 0));
layer.transform[1] = texelFetchOffset(sLayers, uv, 0, ivec2(1, 0));
layer.transform[2] = texelFetchOffset(sLayers, uv, 0, ivec2(2, 0));
layer.transform[3] = texelFetchOffset(sLayers, uv, 0, ivec2(3, 0));

layer.inv_transform[0] = texelFetchOffset(sLayers, uv, 0, ivec2(4, 0));
layer.inv_transform[1] = texelFetchOffset(sLayers, uv, 0, ivec2(5, 0));
layer.inv_transform[2] = texelFetchOffset(sLayers, uv, 0, ivec2(6, 0));
layer.inv_transform[3] = texelFetchOffset(sLayers, uv, 0, ivec2(7, 0));

layer.local_clip_rect = texelFetchOffset(sLayers, uv, 0, ivec2(8, 0));

layer.screen_vertices[0] = texelFetchOffset(sLayers, uv, 0, ivec2(9, 0));
layer.screen_vertices[1] = texelFetchOffset(sLayers, uv, 0, ivec2(10, 0));
layer.screen_vertices[2] = texelFetchOffset(sLayers, uv, 0, ivec2(11, 0));
layer.screen_vertices[3] = texelFetchOffset(sLayers, uv, 0, ivec2(12, 0));
// Create a UV base coord for each 8 texels.
// This is required because trying to use an offset
// of more than 8 texels doesn't work on some versions
// of OSX.
ivec2 uv0 = ivec2(0, index);
ivec2 uv1 = ivec2(8, index);

layer.transform[0] = texelFetchOffset(sLayers, uv0, 0, ivec2(0, 0));
layer.transform[1] = texelFetchOffset(sLayers, uv0, 0, ivec2(1, 0));
layer.transform[2] = texelFetchOffset(sLayers, uv0, 0, ivec2(2, 0));
layer.transform[3] = texelFetchOffset(sLayers, uv0, 0, ivec2(3, 0));

layer.inv_transform[0] = texelFetchOffset(sLayers, uv0, 0, ivec2(4, 0));
layer.inv_transform[1] = texelFetchOffset(sLayers, uv0, 0, ivec2(5, 0));
layer.inv_transform[2] = texelFetchOffset(sLayers, uv0, 0, ivec2(6, 0));
layer.inv_transform[3] = texelFetchOffset(sLayers, uv0, 0, ivec2(7, 0));

layer.local_clip_rect = texelFetchOffset(sLayers, uv1, 0, ivec2(0, 0));

layer.screen_vertices[0] = texelFetchOffset(sLayers, uv1, 0, ivec2(1, 0));
layer.screen_vertices[1] = texelFetchOffset(sLayers, uv1, 0, ivec2(2, 0));
layer.screen_vertices[2] = texelFetchOffset(sLayers, uv1, 0, ivec2(2, 0));
layer.screen_vertices[3] = texelFetchOffset(sLayers, uv1, 0, ivec2(3, 0));

return layer;
}
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.