Forums | developer.brewmp.com Forums | developer.brewmp.com

Developer

Forums

Forums:

Hello,

There are several problems with current OpenGL implementation in "Brew MP 1.0 SDK Rev 3.2".
1. The OGLExtension.lib for the simulator depends on LIBC.lib file, which is not present since Visual Studio 2003, and therefor cannot be used, unless the user explicitly disables the library.
2. The OpenGL interface presents floating point functions (like glClearColor, glRotatef) , but doesn't implement them (it seems they are just empty stubs), only the fixed point APIs are working.

Is there any plan for an updated SDK for OpenGL to address these issues?

We'll look into this and get back to you shortly.
Thanks
-Tony

We'll look into this and get back to you shortly.
Thanks
-Tony

Hi Tony,
Thanks, looking forward to hearing what you uncover...
In the meantime - two more things:
1. on test headset glGetIntegerv(GL_VIEWPORT) returns an error
2. glGetFixedv is not implemented by the interface (though it's even a part of common-lite profile)
Thanks again!

Hi Tony,
Thanks, looking forward to hearing what you uncover...
In the meantime - two more things:
1. on test headset glGetIntegerv(GL_VIEWPORT) returns an error
2. glGetFixedv is not implemented by the interface (though it's even a part of common-lite profile)
Thanks again!

Quote:1. The OGLExtension.lib for the simulator depends on LIBC.lib file, which is not present since Visual Studio 2003, and therefore cannot be used, unless the user explicitly disables the library.
- YES. For VS2003 or lower, you will need to ignore the LIBC.lib as the extensions are done using VS2005.
Quote:2. The OpenGL interface presents floating point functions (like glClearColor, glRotatef) , but doesn't implement them (it seems they are just empty stubs), only the fixed point APIs are working.
- OpenGLES 1.x is a fixed function hardware pipeline and it does not support floating point instructions in hardware. Since simulator is supposed to emulate hardware, unfortunately we do not have any plans to support floating point.
Quote:1. on test headset glGetIntegerv(GL_VIEWPORT) returns an error
2. glGetFixedv is not implemented by the interface (though it's even a part of common-lite profile)
These are not known issues to us. Would you give us more details? What version of platform do you see the issues on? How do you reproduce these issues?
-Tony

Quote:1. The OGLExtension.lib for the simulator depends on LIBC.lib file, which is not present since Visual Studio 2003, and therefore cannot be used, unless the user explicitly disables the library.
- YES. For VS2003 or lower, you will need to ignore the LIBC.lib as the extensions are done using VS2005.
Quote:2. The OpenGL interface presents floating point functions (like glClearColor, glRotatef) , but doesn't implement them (it seems they are just empty stubs), only the fixed point APIs are working.
- OpenGLES 1.x is a fixed function hardware pipeline and it does not support floating point instructions in hardware. Since simulator is supposed to emulate hardware, unfortunately we do not have any plans to support floating point.
Quote:1. on test headset glGetIntegerv(GL_VIEWPORT) returns an error
2. glGetFixedv is not implemented by the interface (though it's even a part of common-lite profile)
These are not known issues to us. Would you give us more details? What version of platform do you see the issues on? How do you reproduce these issues?
-Tony

Tony, thank you again for your help. Could you please clarify the following:
tonyl wrote:
- OpenGLES 1.x is a fixed function hardware pipeline and it does not support floating point instructions in hardware. Since simulator is supposed to emulate hardware, unfortunately we do not have any plans to support floating point.
The most popular Qualcomm chip that is used for BREW with OpenGL is MSM7500 which implements all of the floating point operations in hardware and is present in the FFA test handsets provided by Qualcomm. In addition, if only fixed point is supported, why does the floating point interface exist, and why does the BREW site says that the platform supports Common-Profile ?
tonyl wrote:
1. on test headset glGetIntegerv(GL_VIEWPORT) returns an error
2. glGetFixedv is not implemented by the interface (though it's even a part of common-lite profile)
These are not known issues to us. Would you give us more details? What version of platform do you see the issues on? How do you reproduce these issues?
Regarding the first issue - if you execute glGetIntegerv(GL_VIEWPORT, params) on a device, and not on a simulator, the function does not return the size of the current viewport.
Regarding the second issue - glGetFixedv is a function that is a part of OpenGL ES standard, and must be present in all profiles, including the fixed-point Common-Lite profile. For some reason, it's missing from BREW's implementation of the IGL interface.
Thanks in advance!

Tony, thank you again for your help. Could you please clarify the following:
tonyl wrote:
- OpenGLES 1.x is a fixed function hardware pipeline and it does not support floating point instructions in hardware. Since simulator is supposed to emulate hardware, unfortunately we do not have any plans to support floating point.
The most popular Qualcomm chip that is used for BREW with OpenGL is MSM7500 which implements all of the floating point operations in hardware and is present in the FFA test handsets provided by Qualcomm. In addition, if only fixed point is supported, why does the floating point interface exist, and why does the BREW site says that the platform supports Common-Profile ?
tonyl wrote:
1. on test headset glGetIntegerv(GL_VIEWPORT) returns an error
2. glGetFixedv is not implemented by the interface (though it's even a part of common-lite profile)
These are not known issues to us. Would you give us more details? What version of platform do you see the issues on? How do you reproduce these issues?
Regarding the first issue - if you execute glGetIntegerv(GL_VIEWPORT, params) on a device, and not on a simulator, the function does not return the size of the current viewport.
Regarding the second issue - glGetFixedv is a function that is a part of OpenGL ES standard, and must be present in all profiles, including the fixed-point Common-Lite profile. For some reason, it's missing from BREW's implementation of the IGL interface.
Thanks in advance!

Is this a FFA device? Can you give me more details about what MSM it is running and the BMP version? How did you receive the device?
Thanks
-Tony

Is this a FFA device? Can you give me more details about what MSM it is running and the BMP version? How did you receive the device?
Thanks
-Tony

The device which fails on glGetIntegerv(GL_VIEWPORT, params) is an FFA with MSM7500_90 2.3
BREW version is 4.0.1.41
S/W version is 7500B-ZDCAAASA-51569.
(Again, I wanted to emphasize that the problem does not exist on the Simulators (both 3.1 and BMP) )
The missing glGetFixedv is a problem with both BMP and older Brew 3.1 SDKs.
Regarding the floating-point versions of GL ES APIs (Common-profile), let me add more info:
ATI Imageon in MSM7500 does support floating-point pipeline and even implements GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES.
It also supports glVertexPointer(3, GL_FLOAT, 0, vertices).
So the problem is not that the simulator is not simulating floating-point in order to be compatible with the hardware that doesn t have it.
The problem is that the sdk does declare and even implements (links) floating-point but it seems that these function are empty stubs and the call is not relayed to the hardware.
This does not seem to be a problem with the sdk, but a problem with the firmware on the device and simulator.
Regarding LIBC.lib it seems to be the opposite from what you said, the problem I had was with VS2005.
Maybe OGLExtension.lib is compiled with vs2003 or earlier.

The device which fails on glGetIntegerv(GL_VIEWPORT, params) is an FFA with MSM7500_90 2.3
BREW version is 4.0.1.41
S/W version is 7500B-ZDCAAASA-51569.
(Again, I wanted to emphasize that the problem does not exist on the Simulators (both 3.1 and BMP) )
The missing glGetFixedv is a problem with both BMP and older Brew 3.1 SDKs.
Regarding the floating-point versions of GL ES APIs (Common-profile), let me add more info:
ATI Imageon in MSM7500 does support floating-point pipeline and even implements GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES.
It also supports glVertexPointer(3, GL_FLOAT, 0, vertices).
So the problem is not that the simulator is not simulating floating-point in order to be compatible with the hardware that doesn t have it.
The problem is that the sdk does declare and even implements (links) floating-point but it seems that these function are empty stubs and the call is not relayed to the hardware.
This does not seem to be a problem with the sdk, but a problem with the firmware on the device and simulator.
Regarding LIBC.lib it seems to be the opposite from what you said, the problem I had was with VS2005.
Maybe OGLExtension.lib is compiled with vs2003 or earlier.

correction, the GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES extension is not supported on the actual device...

correction, the GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES extension is not supported on the actual device...