From 55d832fc631b3a5d4006309d485b130ab400815a Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Wed, 20 Jun 2018 11:56:52 +0900 Subject: [PATCH] shareable: Don't extend textures on macOS Fixes #593 --- internal/shareable/shareable.go | 5 ----- internal/shareable/size_macos.go | 29 +++++++++++++++++++++++++++++ internal/shareable/size_notmacos.go | 22 ++++++++++++++++++++++ 3 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 internal/shareable/size_macos.go create mode 100644 internal/shareable/size_notmacos.go diff --git a/internal/shareable/shareable.go b/internal/shareable/shareable.go index 42a1ecb7b..ed7186417 100644 --- a/internal/shareable/shareable.go +++ b/internal/shareable/shareable.go @@ -270,11 +270,6 @@ func (i *Image) allocate(shareable bool) { panic("not reached") } - const ( - initSize = 1024 - maxSize = 4096 - ) - if !shareable || i.width > maxSize || i.height > maxSize { i.backend = &backend{ restorable: restorable.NewImage(i.width, i.height, false), diff --git a/internal/shareable/size_macos.go b/internal/shareable/size_macos.go new file mode 100644 index 000000000..ae265e9e1 --- /dev/null +++ b/internal/shareable/size_macos.go @@ -0,0 +1,29 @@ +// Copyright 2018 The Ebiten Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build darwin +// +build !ios +// +build !js + +package shareable + +// On MacBook Pro 2013 (Late), there is a bug in texture rendering and +// extending shareable textures sometimes fail (#593). This is due to +// a bug in the grahics driver, and there is nothing we can do. Let's +// not extend shareable textures in such environment. + +const ( + initSize = 4096 + maxSize = 4096 +) diff --git a/internal/shareable/size_notmacos.go b/internal/shareable/size_notmacos.go new file mode 100644 index 000000000..421b9bb0c --- /dev/null +++ b/internal/shareable/size_notmacos.go @@ -0,0 +1,22 @@ +// Copyright 2018 The Ebiten Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build !darwin ios js + +package shareable + +const ( + initSize = 1024 + maxSize = 4096 +)