[gmpi] Re: Reqs final draft
- From: "Didier Dambrin" <didid@xxxxxxxxx>
- To: <gmpi@xxxxxxxxxxxxx>
- Date: Fri, 14 Jan 2005 02:08:14 +0100
That of course we all agree (and I wish VSTi's would behave like that)
But I think that a plugin could also assume the FPU state to be a constant
in all hosts. It'd help it to be able to do common roundings without having
to change it. Although yes, today you can do roundings by other means.
I'd have thought that we'd all agree that exceptions should be masked, and
that rounding should be set to nearest, but apparently not.
It should also be required that a plugin that changes the FPU state, clears
the pending exceptions first. Since they can be masked by the hosts, there
can be exceptions that would be triggered in the poor plugin changing the
state.
Maybe a way to restate this is: a GMPI plugin must always *preserve* the
state of the floating point flags. If it wants to change them, fine,
but it must restore them.
-----Original Message-----
From: gmpi-bounce@xxxxxxxxxxxxx [mailto:gmpi-bounce@xxxxxxxxxxxxx] On
Behalf Of Mike Berry
Sent: Thursday, January 13, 2005 11:04 AM
To: gmpi@xxxxxxxxxxxxx
Subject: [gmpi] Re: Reqs final draft
Paul Davis wrote:
I can see lots of reasons to have all exceptions disabled (it's made
for
realtime apps - you don't want exceptions here more than you'd do in
apps
that use openGL), but what's your reason to want exceptions unmasked?
if a plugin does a divide-by-zero, its an error on the part of the
developer AFAICT. as a host author, i would want to catch such
actions, and remove the plugin from my "graph". you can, i believe,
mask certain exceptions and allow others.
I'm going to jump in here with a different opinion. The rule
should be
that the plugin may never change the cpu/fpu flags. Ever. The host is
free to set the state however it pleases. The thread that calls a plugin
may be used in the host for lots of other things. The host has the
correct context to know what the fpu state should be, and the plugin
doesn't. Nor does GMPI know what the correct state should be. If we make
a decision on the processor flags that is an undue burden on the host,
because it may be regular switching of these flags in and out of
plugins, which is not a good RT practice. If the host chooses 24 bit
precision, for instance, a lot of plugins may sound bad. But the host
presumably made that decision for some reason that outweighed the
considerations of the plugin, so it should stand.
--
Mike Berry
Adobe Systems
----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules: Please stay on topic. You are responsible for your
own
words. Please respect your fellow subscribers. Please do not
redistribute anyone else's words without their permission.
Archive: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules: Please stay on topic. You are responsible for your own
words. Please respect your fellow subscribers. Please do not
redistribute anyone else's words without their permission.
Archive: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules: Please stay on topic. You are responsible for your own
words. Please respect your fellow subscribers. Please do not
redistribute anyone else's words without their permission.
Archive: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
- References:
- [gmpi] Re: Reqs final draft
- From: Ron Kuper
Other related posts:
- » [gmpi] Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
- » [gmpi] Re: Reqs final draft
Maybe a way to restate this is: a GMPI plugin must always *preserve* the state of the floating point flags. If it wants to change them, fine, but it must restore them.
-----Original Message----- From: gmpi-bounce@xxxxxxxxxxxxx [mailto:gmpi-bounce@xxxxxxxxxxxxx] On Behalf Of Mike Berry Sent: Thursday, January 13, 2005 11:04 AM To: gmpi@xxxxxxxxxxxxx Subject: [gmpi] Re: Reqs final draft
Paul Davis wrote:
forI can see lots of reasons to have all exceptions disabled (it's made
appsrealtime apps - you don't want exceptions here more than you'd do in
that use openGL), but what's your reason to want exceptions unmasked?
if a plugin does a divide-by-zero, its an error on the part of the developer AFAICT. as a host author, i would want to catch such actions, and remove the plugin from my "graph". you can, i believe, mask certain exceptions and allow others.
I'm going to jump in here with a different opinion. The rule should be that the plugin may never change the cpu/fpu flags. Ever. The host is free to set the state however it pleases. The thread that calls a plugin
may be used in the host for lots of other things. The host has the correct context to know what the fpu state should be, and the plugin doesn't. Nor does GMPI know what the correct state should be. If we make
a decision on the processor flags that is an undue burden on the host, because it may be regular switching of these flags in and out of plugins, which is not a good RT practice. If the host chooses 24 bit precision, for instance, a lot of plugins may sound bad. But the host presumably made that decision for some reason that outweighed the considerations of the plugin, so it should stand.
-- Mike Berry Adobe Systems
---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission.
Archive: http://www.freelists.org/archives/gmpi Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission.
Archive: http://www.freelists.org/archives/gmpi Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
- [gmpi] Re: Reqs final draft
- From: Ron Kuper