Абстрактная ошибка Delphi XE7 в StyleLookup с эффектом (FireMonkey)

Для начала я пишу приложение для клиента, которое сильно зависит от пользовательских стилей. Эти стили состоят из нескольких дополнительных элементов управления и визуальных эффектов (TBlurEffect, TShadowEffect и т. д.).

На моей машине разработки эти эффекты и стили отображаются корректно без ошибок (Windows Server 2012), то же самое касается другой тестовой машины под управлением Windows 7. При попытке запустить на одном из клиентских серверов я получаю абстрактную ошибку, когда стиль применяемый. Я создал тестовое приложение с 4 различными стилями (3 из которых имеют эффекты, а 1 — просто TRectangle). Все 3 стиля эффекта дают одну и ту же абстрактную ошибку, но стиль простого прямоугольника этого не делает (что заставляет меня поверить, что это виновник).

Я убедился, что клиентский компьютер соответствует спецификациям, но все еще чувствую, что что-то не так: http://docwiki.embarcadero.com/RADStudio/XE5/en/FireMonkey_Platform_Prerequisites

В конечном счете, я хотел бы, чтобы эти эффекты работали, но если что-то не так с системой клиентов по сравнению с требованиями Firemonkey, я хотел бы посмотреть, есть ли какая-то директива или глобальная переменная, которую я мог бы использовать для проверки и отключить эффекты во время выполнения. Если бы кто-нибудь мог помочь, это было бы оценено.

Результаты dxdiag клиентов: ------------------ Информация о системе ------------------ Время этого отчета: 3/10 /2015, 10:28:20 Имя компьютера: ##REMOVED## Операционная система: Windows Server 2003, Enterprise Edition (5.2, сборка 3790) Пакет обновления 2 (3790.srv03_sp2_qfe.130703-1535) Язык: английский (региональная настройка: Русский) Производитель системы: Dell Inc. Модель системы: PowerEdge 1950 BIOS: Phoenix ROM BIOS PLUS версии 1.10 2.7.0 Процессор: Intel(R) Xeon(R) CPU E5310 @ 1,60 ГГц (8 процессоров), ~1,6 ГГц Память: 8186 МБ Файл страницы ОЗУ: 3175 МБ занято, 6861 МБ доступно Каталог Windows: C:\WINDOWS Версия DirectX: DirectX 9.0c (4.09.0000.0904) Параметры настройки DX: Не найдено Версия DxDiag: 5.03.3790.3959 32-битный Unicode

Мой тестовый проект:

program Project1;   
uses
  System.StartUpCopy,
  FMX.Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Мой тестовый модуль:

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  FMX.ListBox,FMX.NumberBox,FMX.TabControl;

type
  TForm1 = class(TForm)
    StyleBook1: TStyleBook;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Panel1: TPanel;
    ComboBox1: TComboBox;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  Self.StyleBook:=StyleBook1;
  ComboBox1.Items.Clear;
  for I := 0 to StyleBook1.Style.ChildrenCount-1 do
  Begin
    ComboBox1.Items.Add(StyleBook1.Style.Children[i].StyleName);
  End;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if ComboBox1.ItemIndex>-1 then
    Panel1.StyleLookup:=ComboBox1.Selected.Text;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Self.StyleBook:=Nil;
  Panel1.StyleLookup:='';
  ComboBox1.Items.Clear;
end;

end.

Моя форма:

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 480
  ClientWidth = 640
  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [Desktop]
  DesignerMasterStyle = 0
  object StyleBook1: TStyleBook
    Left = 256
    Top = 192
    ResourcesBin = {
      464D585F5354594C4520322E3501060D74657374626C75727374796C65034401
      060F74657374736861646F777374796C65039301060D74657374676C6F777374
      796C65036A010611746573746E6F6566666563747374796C65030A0100545046
      3007544C61796F757400095374796C654E616D65060D74657374626C75727374
      796C6505416C69676E0706436C69656E740A53697A652E576964746805000000
      00000040F108400B53697A652E48656967687405000000000000008A08401453
      697A652E506C6174666F726D44656661756C74080756697369626C6508085461
      624F726465720200000A5452656374616E676C6500095374796C654E616D6506
      0E72656374616E676C657374796C6505416C69676E0706436C69656E740A5369
      7A652E57696474680500000000000040F108400B53697A652E48656967687405
      000000000000008A08401453697A652E506C6174666F726D44656661756C7408
      00000B54426C757245666665637400095374796C654E616D65060F626C757265
      66666563747374796C6508536F66746E6573730500000000009A9999FD3F0000
      005450463007544C61796F757400095374796C654E616D65060F746573747368
      61646F777374796C6505416C69676E0706436C69656E740A53697A652E576964
      74680500000000000000C804400B53697A652E48656967687405000000000000
      00C804401453697A652E506C6174666F726D44656661756C7408085461624F72
      6465720201000A5452656374616E676C6500095374796C654E616D65060E7265
      6374616E676C657374796C6505416C69676E0706436C69656E740A53697A652E
      57696474680500000000000000C804400B53697A652E48656967687405000000
      00000000C804401453697A652E506C6174666F726D44656661756C740800000D
      54536861646F7745666665637400095374796C654E616D650611736861646F77
      6566666563747374796C650844697374616E63650500000000000000C0004009
      446972656374696F6E0500000000000000B4044008536F66746E657373050000
      0000009A9999FD3F074F7061636974790500000000009A9999FE3F0B53686164
      6F77436F6C6F720708636C61426C61636B0000005450463007544C61796F7574
      00095374796C654E616D65060D74657374676C6F777374796C6505416C69676E
      0706436C69656E740A53697A652E57696474680500000000000040F108400B53
      697A652E48656967687405000000000000008A08401453697A652E506C617466
      6F726D44656661756C74080756697369626C6508085461624F72646572020200
      0A5452656374616E676C6500095374796C654E616D65060E72656374616E676C
      657374796C6505416C69676E0706436C69656E740A53697A652E576964746805
      00000000000040F108400B53697A652E48656967687405000000000000008A08
      401453697A652E506C6174666F726D44656661756C740800000B54476C6F7745
      666665637400095374796C654E616D65060F676C6F776566666563747374796C
      6508536F66746E657373050000000000CDCCCCFD3F09476C6F77436F6C6F7207
      07636C61476F6C64074F7061636974790500000000006666E6FE3F0000005450
      463007544C61796F757400095374796C654E616D650611746573746E6F656666
      6563747374796C6505416C69676E0706436C69656E740A53697A652E57696474
      680500000000000040F108400B53697A652E4865696768740500000000000000
      8A08401453697A652E506C6174666F726D44656661756C74080756697369626C
      6508085461624F726465720203000A5452656374616E676C6500095374796C65
      4E616D65060E72656374616E676C657374796C6505416C69676E0706436C6965
      6E740A53697A652E57696474680500000000000040F108400B53697A652E4865
      6967687405000000000000008A08401453697A652E506C6174666F726D446566
      61756C7408000000}
  end
  object Button1: TButton
    Position.X = 32.000000000000000000
    Position.Y = 136.000000000000000000
    Size.Width = 161.000000000000000000
    Size.Height = 22.000000000000000000
    Size.PlatformDefault = False
    TabOrder = 5
    Text = 'Assign StyleBook to Form'
    OnClick = Button1Click
  end
  object Button2: TButton
    Position.X = 32.000000000000000000
    Position.Y = 192.000000000000000000
    Size.Width = 161.000000000000000000
    Size.Height = 22.000000000000000000
    Size.PlatformDefault = False
    TabOrder = 3
    Text = 'Assign Style to Panel'
    OnClick = Button2Click
  end
  object Button3: TButton
    Position.X = 32.000000000000000000
    Position.Y = 248.000000000000000000
    Size.Width = 161.000000000000000000
    Size.Height = 22.000000000000000000
    Size.PlatformDefault = False
    TabOrder = 1
    Text = 'Clear Style Book and Style'
    OnClick = Button3Click
  end
  object Panel1: TPanel
    Align = Right
    Position.X = 248.000000000000000000
    Size.Width = 392.000000000000000000
    Size.Height = 480.000000000000000000
    Size.PlatformDefault = False
    TabOrder = 4
  end
  object ComboBox1: TComboBox
    Position.X = 32.000000000000000000
    Position.Y = 56.000000000000000000
    Size.Width = 161.000000000000000000
    Size.Height = 22.000000000000000000
    Size.PlatformDefault = False
    TabOrder = 6
  end
  object Label1: TLabel
    Position.X = 32.000000000000000000
    Position.Y = 40.000000000000000000
    Text = 'Style'
  end
  object BlurEffect1: TBlurEffect
    Softness = 0.300000011920929000
  end
end

person SmeTheWiz    schedule 10.03.2015    source источник
comment
Какой GPU у вашего сервера? Сбой происходит на консоли или в сеансе RDP?   -  person whosrdaddy    schedule 10.03.2015
comment
Если это ATI ES1000, то вам не повезло, нет поддержки шейдеров...   -  person whosrdaddy    schedule 10.03.2015
comment
@whosrdaddy Итак, у них есть ATI ES1000 ... К сожалению. Есть ли способ обнаружить поддержку шейдеров во время выполнения?   -  person SmeTheWiz    schedule 10.03.2015
comment
конечно, но это будет новый вопрос :)   -  person whosrdaddy    schedule 10.03.2015
comment
Собираюсь закрыть этот вопрос как обман.   -  person whosrdaddy    schedule 10.03.2015
comment
@whosrdaddy спасибо за помощь!   -  person SmeTheWiz    schedule 10.03.2015